https://www.jianshu.com/p/3afba55da012
https://www.chensheng.group/2019/09/14/92-vue%E6%89%93%E5%8C%85%E9%85%8D%E7%BD%AE/
一、需求
在項目上線過程中,需要根據不同的環境來抽出公共的參數,比如請求域名和一些外部資源環境配置。
以下就是今天的主題,關於vue-cli 2.x 多環境打包配置。
二、操作
整個操作所涉及到的部分,主要是包含package.json, 還有build目錄下的文件 以及 config目錄下的文件。
1、配置package.json
在package.json中的scripts中添加相關環境地址,我的環境添加如下:
- build-devtest 為雲測試環境
- build-protest 為生產雲測試環境
下面我們以build-devtest來配置環境
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js",
"build-devtest": "node build/build.devtest.js",
"build-protest": "node build/build.protest.js"
}
2、配置打包環境(build和config)
- 在config目錄中配置devtest.env.js文件
'use strict' module.exports = { NODE_ENV: '"devtest"' }
-
在build目錄下拷貝build.js 並粘貼,改名字為build.devtest.js
(1) 配置process.env.NODE_ENV = 'devtest'
(2) const webpackConfig = require('./webpack.devtest.conf') -
配置webpack.devtest.conf.js
(1) 復制webpack.dev.conf.js, 並修改為webpack.devtest.conf.js
(2) 配置 const env = require('../config/devtest.env')
3、配置config/index.js文件(根據不同的環境,打包到不同的地址)
index.js
const processEnv = process.env.NODE_ENV; let buildFolder; // >>>>>>>>> 創建不同的打包地址 if (processEnv == 'production') { buildFolder = 'dist-pro'; // 生產 } if (processEnv == 'devtest') { buildFolder = 'dist-devtest'; } .......... build: { // >>>>>>>>> 根據不同的地址,導出到不同的目錄 // Template for index.html index: path.resolve(__dirname, `../${buildFolder}/index.html`), // Paths assetsRoot: path.resolve(__dirname, `../${buildFolder}`), assetsSubDirectory: 'static', assetsPublicPath: './', /** * Source Maps */ productionSourceMap: false, // https://webpack.js.org/configuration/devtool/#production devtool: '#source-map', // Gzip off by default as many popular static hosts such as // Surge or Netlify already gzip all static assets for you. // Before setting to `true`, make sure to: // npm install --save-dev compression-webpack-plugin productionGzip: false, productionGzipExtensions: ['js', 'css'], // Run the build command with an extra argument to // View the bundle analyzer report after build finishes: // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report } .....
三、結語
了解和配置vue-cli 2.x的多環境打包配置,也是有利於同步學習webpack和node相關的知識! 繼續加油呀!!!
注:測試環境打包html文件資源訪問路徑的static前面的.會丟失,所以還要加,test和test2是要跟着自己的設置變的
下面這樣才是對的