vue项目中同时启动两个命令
因为想启动一个命令同时执行json-server mock的数据和打开前端页面,
--mode mock是想根据 process.env.XXX获取不同的环境。
vue根节点下.env.mock
NODE_ENV=mock
VUE_APP_URL=http://localhost:3000
*只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。
npm install concurrently --save
package.json中
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"server": "json-server --watch Mock/db.json",
"serve:mock": "concurrently \"npm run server\" \"vue-cli-service serve --mode mock\""
},
这种npm run serve:mock报警告,下面这种没解决。
[1] WARNING Compiled with 1 warning
[1]
[1] warning
[1]
[1] DefinePlugin
[1] Conflicting values for 'process.env.NODE_ENV'。
改为:
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"server": "json-server --watch Mock/db.json --port 3001",
"test": "concurrently \"npm run server\" \"vue-cli-service serve --mode test\""
},
.env.test 下:
NODE_ENV = test
VUE_APP_MODE = test
VUE_APP_URL=http://localhost:3000
npm run test不报错
返回的process.env.NODE_ENV :
{
BASE_URL: "/",
NODE_ENV: "development",
VUE_APP_MODE: "test",
VUE_APP_URL: "http://localhost:3000"
}
和我想要的有差异,本来打算根据NODE_ENV做判断。
现在就是创建.env.dev, .env.pro,根据启动命令获取不同的VUE_APP_URL服务器地址。