在项目中,遇到一个特殊的功能,领导要我们重新建一个项目,部署到现有的服务器上,然后通过NG配置实现根据url端口号跳转不同的项目,然而生产和测试环境能提供到的端口号不一致。这就导致我们必须根据生产环境和uat环境分别打包,区分当前的BASE_API
注:dev环境我们用proxy.js进行配置了。然后再dev.env.js中引入即可。
var proxyTable = {
'/api': {
target: 'http://xx.xx.xx.xx:8080',
changeOrigin: true,
pathRewrite: {
'/api': '/api'
}
}
}
module.exports = proxyTable
- 新建构建执行文件uat.js, 在其中将环境设为’uat’,并且引入webpack.uat.conf文件。
process.env.NODE_ENV = 'uat'
const webpackConfig = require('./webpack.uat.conf')
webpack.uat.conf中引入配置文件 uat.env
const env = require('../config/uat.env')
uat.env内容大致如下:
module.exports = {
NODE_ENV: '"uat"',
BASE_API: '"http://xx.xx.xx.x:8888/api"'
}
最后,通过在package.zip中声明打包命令,将’npm run uat’指向 ‘node build/uat.js’
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js",
"uat": "node build/uat.js"
},
至此,就实现了在uat单独配置服务器地址的功能啦。