前端区分打包环境
一、安裝cross-env
cnpm install --save-dev cross-env
通過cross-env這個插件我們能夠跨平臺設置環境變量.那么我們怎么來區分到底是生產環境、預生產環境還是測試環境
二、配置各個環境的參數
這里我們vue項目腳手腳版本是2.0 在config/文件夾,我們逐一添加pre.env.js\prod.env.js\test.env.js三個js文件,作為區分環境的依據
//config/pre.env.js'use strict' module.exports = {NODE_ENV: '"prepare"',ENV_CONFIG:'"pre"',//接口地址API:'"//pre/api"' } //config/prod.env.js 'use strict' module.exports = {NODE_ENV: '"production"',ENV_CONFIG:'"prod"',API:'"//prod/api"' } 'use strict' //config/test.env.js module.exports = {NODE_ENV: '"test"',ENV_CONFIG:'"test"',API:'"//test/api"' }這里可以修改config/dev.env.js來區分本地環境地址
'use strict' //config/dev.env.js const merge = require('webpack-merge') const prodEnv = require('./prod.env')module.exports = merge(prodEnv, {NODE_ENV: '"development"',API:'"//dev/api"' })三、修改package.json文件
新增打包命令
"scripts": {"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js","start": "npm run dev","build": "node build/build.js","build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js","build:test": "cross-env NODE_ENV=test env_config=test node build/build.js","build:pre": "cross-env NODE_ENV=prepare env_config=pre node build/build.js"},四、修改config/index.js文件
build: {//添加build參數 prod\test\preprodEnv:require('./prod.env.js'),preEnv:require('./pre.env.js'),testEnv:require('./test.env.js'),// Template for index.htmlindex: path.resolve(__dirname, '../dist/index.html'),五、修改build/webpackage.prod.conf.js 調整env常量生成的方式
// const env = require('../config/prod.env') const env = config.build[process.env.env_config+'Env']六、修改build/build.js
'use strict' require('./check-versions')() //process.env.NODE_ENV = 'production'const ora = require('ora') const rm = require('rimraf') const path = require('path') const chalk = require('chalk') const webpack = require('webpack') const config = require('../config') const webpackConfig = require('./webpack.prod.conf')//注釋掉添加新的 //const spinner = ora('building for production...') const spinner =ora('building for '+process.env.NODE_ENV+' of '+process.env.env_config+' mode ...') spinner.start()接下來就可以使用以下命令進行分別打包了
npm run build:test(打包測試地址)
npm run build:pre(打包預生產環境地址)
npm run build:prod(打包生產環境地址)
總結
- 上一篇: GD项目回顾之JWT
- 下一篇: 2021年10月份自考感悟