hookehuyr

环境变量配置

1 +# port
2 +VITE_PORT = 8006
3 +
4 +# 反向代理服务器地址
5 +VITE_PROXY_TARGET = http://voice.onwall.cn
6 +
7 +# API请求前缀
8 +VITE_PROXY_PREFIX = /srv/
9 +
10 +# 打包输出文件夹名称
11 +VITE_OUTDIR = voice
1 -VITE_BASE = '/' 1 +# 资源公共路径
2 -VITE_OPENID = 'api-test-openid' 2 +VITE_BASE = /
3 -VITE_ID = '13812345678' 3 +
4 -VITE_PIN = '8888' 4 +# 测试open-id
5 +VITE_OPENID = api-test-openid
6 +
7 +# B端账号
8 +VITE_ID = 13812345678
9 +
10 +# 验证码
11 +VITE_PIN = 8888
......
1 -VITE_BASE = '/f/voice/' 1 +# 资源公共路径
2 -VITE_APP_OPENID = '' 2 +VITE_BASE = /f/voice/
3 -VITE_APP_ID = '' 3 +
4 -VITE_APP_PIN = '' 4 +# 测试open-id
5 +VITE_APP_OPENID =
6 +
7 +# B端账号
8 +VITE_APP_ID =
9 +
10 +# 验证码
11 +VITE_APP_PIN =
......
1 -const PROXY_TARGET = 'http://voice.onwall.cn'; // 反向代理服务器地址
2 -const OUTDIR = 'voice' // 打包输出文件夹名称
3 -
4 -export {
5 - PROXY_TARGET,
6 - OUTDIR
7 -}
1 import vue from '@vitejs/plugin-vue'; 1 import vue from '@vitejs/plugin-vue';
2 import styleImport, { VantResolve } from 'vite-plugin-style-import'; 2 import styleImport, { VantResolve } from 'vite-plugin-style-import';
3 import { defineConfig, loadEnv } from 'vite'; 3 import { defineConfig, loadEnv } from 'vite';
4 -import { PROXY_TARGET, OUTDIR } from './PRJCONFIG' 4 +import { createProxy } from './build/proxy'
5 5
6 var path = require('path'); 6 var path = require('path');
7 7
8 -export default({ command, mode }) => { 8 +export default ({ command, mode }) => {
9 + const root = process.cwd();
10 +
11 + const viteEnv = loadEnv(mode, root);
9 // let isProd = (command === 'serve'); // 情景配置是否为开发模式 serve 或 build 12 // let isProd = (command === 'serve'); // 情景配置是否为开发模式 serve 或 build
13 +
10 return defineConfig({ 14 return defineConfig({
11 // root: '', 15 // root: '',
12 - base: loadEnv(mode, process.cwd()).VITE_BASE, // 开发或生产环境服务的公共基础路径。 16 + base: viteEnv.VITE_BASE, // 开发或生产环境服务的公共基础路径。
13 // base: isProd ? '/' : '/f/voice/', // 开发或生产环境服务的公共基础路径。 17 // base: isProd ? '/' : '/f/voice/', // 开发或生产环境服务的公共基础路径。
14 // mode: '', // 在配置中指明将会把 serve 和 build 时的模式 都 覆盖掉。也可以通过命令行 --mode 选项来重写。 18 // mode: '', // 在配置中指明将会把 serve 和 build 时的模式 都 覆盖掉。也可以通过命令行 --mode 选项来重写。
15 // define: '', // 定义全局常量替换方式。其中每项在开发环境下会被定义在全局,而在构建时被静态替换。 19 // define: '', // 定义全局常量替换方式。其中每项在开发环境下会被定义在全局,而在构建时被静态替换。
...@@ -37,11 +41,16 @@ export default({ command, mode }) => { ...@@ -37,11 +41,16 @@ export default({ command, mode }) => {
37 // mainFields: [''], // package.json 中,在解析包的入口点时尝试的字段列表。注意,这比从 exports 字段解析的情景导出优先级低:如果一个入口点从 exports 成功解析,主字段将被忽略。 41 // mainFields: [''], // package.json 中,在解析包的入口点时尝试的字段列表。注意,这比从 exports 字段解析的情景导出优先级低:如果一个入口点从 exports 成功解析,主字段将被忽略。
38 // extensions: [''], // 导入时想要省略的扩展名列表。注意,不 建议忽略自定义导入类型的扩展名(例如:.vue),因为它会干扰 IDE 和类型支持。 42 // extensions: [''], // 导入时想要省略的扩展名列表。注意,不 建议忽略自定义导入类型的扩展名(例如:.vue),因为它会干扰 IDE 和类型支持。
39 }, 43 },
40 - // css: { 44 + css: {
41 - // modules: '', // 配置 CSS modules 的行为。选项将被传递给 postcss-modules。 45 + modules: '', // 配置 CSS modules 的行为。选项将被传递给 postcss-modules。
42 - // postcss: '', // 内联的 PostCSS 配置(格式同 postcss.config.js),或者一个(默认基于项目根目录的)自定义的 PostCSS 配置路径。其路径搜索是通过 postcss-load-config 实现的。 注意,如果提供了该内联配置,Vite 将不会搜索其他 PostCSS 配置源。 46 + postcss: '', // 内联的 PostCSS 配置(格式同 postcss.config.js),或者一个(默认基于项目根目录的)自定义的 PostCSS 配置路径。其路径搜索是通过 postcss-load-config 实现的。 注意,如果提供了该内联配置,Vite 将不会搜索其他 PostCSS 配置源。
43 - // preprocessorOptions: '', // 指定传递给 CSS 预处理器的选项。 47 + preprocessorOptions: {
44 - // }, 48 + less: {
49 + javascriptEnabled: true,
50 + additionalData: `@import "${path.resolve(__dirname, 'src/assets/styles/base.less')}";`
51 + }
52 + } // 指定传递给 CSS 预处理器的选项。
53 + },
45 // json: { 54 // json: {
46 // namedExports: true, // 是否支持从 .json 文件中进行按名导入。 55 // namedExports: true, // 是否支持从 .json 文件中进行按名导入。
47 // stringify: false, // 若设置为 true,导入的 JSON 会被转换为 export default JSON.parse("...") 会比转译成对象字面量性能更好,尤其是当 JSON 文件较大的时候。 开启此项,则会禁用按名导入。 56 // stringify: false, // 若设置为 true,导入的 JSON 会被转换为 export default JSON.parse("...") 会比转译成对象字面量性能更好,尤其是当 JSON 文件较大的时候。 开启此项,则会禁用按名导入。
...@@ -52,18 +61,19 @@ export default({ command, mode }) => { ...@@ -52,18 +61,19 @@ export default({ command, mode }) => {
52 // clearScreen: true, // 设为 false 可以避免 Vite 清屏而错过在终端中打印某些关键信息。命令行模式下请通过 --clearScreen false 设置。 61 // clearScreen: true, // 设为 false 可以避免 Vite 清屏而错过在终端中打印某些关键信息。命令行模式下请通过 --clearScreen false 设置。
53 server: { 62 server: {
54 host: '0.0.0.0', 63 host: '0.0.0.0',
55 - port: 8006, // 本地服务端口 64 + port: viteEnv.VITE_PORT, // 本地服务端口
56 // strictPort: true, // 设为true时若端口已被占用则会直接退出, 而不是尝试下一个可用端口 65 // strictPort: true, // 设为true时若端口已被占用则会直接退出, 而不是尝试下一个可用端口
57 // https: '', 66 // https: '',
58 // open: false, // 在服务器启动时自动在浏览器中打开应用程序. 当此值为字符串时, 会被当作URL的路径名. 67 // open: false, // 在服务器启动时自动在浏览器中打开应用程序. 当此值为字符串时, 会被当作URL的路径名.
59 - proxy: { // 代理 68 + // proxy: { // 代理
60 - '/srv/': { 69 + // '/srv/': {
61 - // target: 'http://voice.onwall.cn', 70 + // // target: 'http://voice.onwall.cn',
62 - target: PROXY_TARGET, 71 + // target: viteEnv.VITE_PROXY_TARGET,
63 - changeOrigin: true, 72 + // changeOrigin: true,
64 - // rewrite: (path) => path.replace(/^\/api/, '') 73 + // // rewrite: (path) => path.replace(/^\/api/, '')
65 - }, 74 + // },
66 - }, 75 + // },
76 + proxy: createProxy(viteEnv.VITE_PROXY_PREFIX, viteEnv.VITE_PROXY_TARGET),
67 // cors: '', // 为开发服务器配置 CORS。默认启用并允许任何源,传递一个 选项对象 来调整行为或设为 false 表示禁用。 77 // cors: '', // 为开发服务器配置 CORS。默认启用并允许任何源,传递一个 选项对象 来调整行为或设为 false 表示禁用。
68 // force: '', // 设置为 true 强制使依赖预构建。 78 // force: '', // 设置为 true 强制使依赖预构建。
69 // hmr: '', // 禁用或配置 HMR 连接(用于 HMR websocket 必须使用不同的 http 服务器地址的情况)。 设置 server.hmr.overlay 为 false 可以禁用服务器错误遮罩层。 79 // hmr: '', // 禁用或配置 HMR 连接(用于 HMR websocket 必须使用不同的 http 服务器地址的情况)。 设置 server.hmr.overlay 为 false 可以禁用服务器错误遮罩层。
...@@ -71,7 +81,7 @@ export default({ command, mode }) => { ...@@ -71,7 +81,7 @@ export default({ command, mode }) => {
71 }, 81 },
72 build: { 82 build: {
73 // outDir: 'voice', // 指定输出路径(相对于项目根目录). 83 // outDir: 'voice', // 指定输出路径(相对于项目根目录).
74 - outDir: OUTDIR, // 指定输出路径(相对于项目根目录). 84 + outDir: viteEnv.VITE_OUTDIR, // 指定输出路径(相对于项目根目录).
75 assetsDir: 'static', 85 assetsDir: 'static',
76 rollupOptions: { 86 rollupOptions: {
77 output: { 87 output: {
......