首页 > 系统相关 >nginx+vite 项目打包及部署到服务器二级路由

nginx+vite 项目打包及部署到服务器二级路由

时间:2022-10-19 15:19:12浏览次数:43  
标签:-- nginx base vite production build 路由 mode

项目打包及部署到服务器二级路由

例如:我希望将打包的项目部署到 http://localhost:8088/web/

一. 项目配置及打包

项目部署到服务器二级路由需要配置基础路径base,即需要:
1.配置vite.config.ts中的基础路径
2.配置路由的基础路径

方式一 通过环境变量配置基础路径

分别在productiondevelopment模式下的环境变量中添加基础路径变量,生产环境:.env.production文件,开发环境:.env.development文件

##生产环境
NODE_ENV='production'
VITE_BASE_PATH=/web/
##开发环境
NODE_ENV='development'
VITE_BASE_PATH='/'

vite.config.ts

在配置中添加:
export default ({ mode }: ConfigEnv): UserConfig => {
  // 获取 .env 环境配置文件
  const env = loadEnv(mode, process.cwd());
  return {
    base: env.VITE_BASE_PATH,
    ...
  }
}

router/index.ts

const router = createRouter({
  history: createWebHistory(import.meta.env.VITE_BASE_PATH),
  routes
})

package.json

"scripts": {
  "dev": "vite serve --mode development",
  "build:prod": "vue-tsc --noEmit && vite build --mode production"
}

打包:

npm run build:prod

方式二 通过打包时的指令配置基础路径

不用配置环境变量,vite.config.ts不用配置base属性,只需要在router/index.ts中添加:

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes
})

import.meta.env.BASE_URL为vite内置
package.json

"scripts": {
  "dev": "vite serve --mode development",
  "dev:base": "vite serve --mode development --base",
  "build:prod": "vue-tsc --noEmit && vite build --mode production"
  "build:base": "vue-tsc --noEmit && vite build --mode production --base",
}

打包:

npm run build:base --base /web/

二. nginx配置及部署

server {
  listen       8088;
  server_name  localhost;

  location /web {
    #二级路由时需要使用别名alias,不用root
    alias html/dist/;
    index  index.html;
    #若不配置try_files,刷新会404
    try_files $uri $uri/ /web/index.html;
  }

  #后台接口
  location /prod-api/ {
    proxy_pass http://172.16.20.30:9905/;
  }
}

Vite基础路径指令配置原理

在vite当中,官方提供了一些内置环境变量,其中就包括BASE_URL,该值默认为/,在项目文件中,必须通过import.meta.env.xxx的方式调用环境变量,此处为import.meta.env.BASE_URL,之后,vite会将import.meta.env.BASE_URL替换为内置的BASE_URL的值,并可以通过指令:--base <path>设置BASE_URL的值


使用npm运行脚本时可以传递参数,在package.json中添加指令:

demo: vite build --mode production

运行npm run demo时等同于vite build --mode production
运行npm run demo -- --base /web/时等同于vite build --mode production --base /web/
但是-- --有两个--,使用起来不太方便,于是改进一下指令:

demo: vite build --mode production --base

运行npm run demo --base /web/时等同于vite build --mode production --base /web/

标签:--,nginx,base,vite,production,build,路由,mode
From: https://www.cnblogs.com/my-wl/p/16806275.html

相关文章

  • Gin路由基础
    路由的基本使用gin框架中采用的路由库是基于httprouter做的地址为:https://github.com/julienschmidt/httprouter基本路由packagemainimport( "github.c......
  • vite..config.ts中Cannot find module 'path' or its corresponding type declaration
    ts中引入path模块出错Cannotfindmodule'path'oritscorrespondingtypedeclarations.解决方法第一步npminstall-D@types/node第二步在tsconfig.json中添加......
  • nginx本地配置web项目-layui
    nginx安装配置以及配置本地web项目nginx下载和安装介绍nginx(enginex)是一个高性能的HTTP和反向代理web服务器,其他的介绍自己百度去看下载https://nginx.org/en/downl......
  • 使用vitepress构建组件库文档
    vitepress-demoblock  为vitepress添加更专业的Demo演示能力,让您在开发vue组件库或者vue相关文档编写时,可以通过引入vue文件的时候结果显示和代码演示。文档官方文......
  • vue路由传参,query和params的区别
    路由传参是使用vue最常用的方法,而其中query和params都能实现传参效果,不过这两者还是有区别的首先路由配置{path:'/admin',//组件路径name:'admin',//组件别名com......
  • 为 vitepress 添加更专业的 Demo 演示能力
    vitepress-demoblock  为vitepress添加更专业的Demo演示能力,让您在开发vue组件库或者vue相关文档编写时,可以通过引入vue文件的时候结果显示和代码演示。文档官方文......
  • nginx负载均衡
    nginx负载均衡目录nginx负载均衡nginx负载均衡介绍反向代理与负载均衡nginx负载均衡配置Keepalived高可用nginx负载均衡器修改Web服务器的默认主页开启nginx负载均衡和反......
  • vue3+vite+ts自动引入api和组件
    安装cnpminstallunplugin-auto-importunplugin-vue-components-d配置//自动导入compositionapi和生成全局typescript说明importAutoImportfrom'unplugin-au......
  • 单臂路由配置
    1、配置路由器AR1[Huawei]sysnameRouterA[RouterA]intg0/0/0.200[RouterA-GigabitEthernet0/0/0.200]dot1qterminationvid200[RouterA-GigabitEthernet0/0/0.20......
  • 三阶段 vue 路由 $route 和 $router 的区别
    1.这是vue-router提供给我们的实例实例的两个属性(api)2.$route是路由对象,一般是获取动态参数|querythis.$route.params.idthis./$route.title ......