vue.js|vue-cli的vue-cli-service命令的默认环境

在运行或者打包Vue项目时,我们常用的命令是:npm run build,npm run serve等样式。其中build和serve是在vue项目的package.json中进行定义,是一个脚本。例如:

{"name": "test02", "version": "0.1.0", "private": true, "scripts": {"serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint" },

在上面的脚本定义中,server、build等是可以按照自己的方式进行命名的,例如myserver、mybuild,对应的运行命令就是:
npm run mybuild
npm run myserve
上面的命令本质上是下面的命令,都可以在命令行方式下运行:
vue-cli-service serve
vue-cli-service build
运行截图如下:
vue.js|vue-cli的vue-cli-service命令的默认环境
文章图片

下面讲一下vue-cli-service serve和vue-cli-service build的默认环境,因为曾经遇到出现一个问题:项目中有一个环境参数文件.env.development。在WebStorm中运行npm run serve,前后端是通的。但是当运行npm run build打包部署到Apache Server中后,前后端是不通的。
检查后发现原因是上面两个命令默认的环境是不一样的,看下面两个运行截图就知道了:
vue.js|vue-cli的vue-cli-service命令的默认环境
文章图片

vue.js|vue-cli的vue-cli-service命令的默认环境
文章图片

第一个脚本默认对应的是development环境,第二个脚本默认对应的是production环境(没有对应的环境设置文件也不影响,有对应的环境设置文件就用文件里面设置的参数)。如果不注意这点,就会出现部署后运行情况和没有部署运行情况不一致的情况,其背后的原因就是默认环境。
如何修改每个脚本对应的环境?非常简单,直接在package.json文件中修改。
vue.js|vue-cli的vue-cli-service命令的默认环境
文章图片

【vue.js|vue-cli的vue-cli-service命令的默认环境】将这个图与第二个图进行比较,环境参数已经发生改变。环境设置文件的命名规范是:.env.xxx,XXX在上图中为development,一般有意义或者惯例的名字即可,右边–mode后面的参数名字需要与左边文件的XXX完全相同(可能有多个环境设置文件)。某个脚本运行后,将会出现XXX的名字,例如上图的【 Building for development…】。

    推荐阅读