vue中process.env讲解:
1,什么是process.env
process.env 是 Node.js 中的一个环境对象。其中保存着系统的环境的变量信息。可使用 Node.js 命令行工具直接进行查看。如下:
而 NODE_ENV 就是其中的一个环境变量。这个变量主要用于标识当前的环境(生产环境,开发环境)。默认是没有这个环境变量的,需要自己手动配置。
2,Vue中设置NODE_ENV
在 Vue 项目中, Vue 提供了自己的配置方式。这就要涉及到 Vue CLI 中模式的概念了。 Vue CLI 文档说明了这个问题。
VueCli官方链接:
也就是说,在 Vue 中, NODE_ENV 可以通过 .env .[mode]文件配置。配置过后,运行 Vue CLI 指令( npm run dev(serve) ,npm run build )时,就会将该模式下的NODE_ENV载入其中了。而这些命令,都有自己的默认模式:
- npm run dev(serve) ,其实是运行了 vue-cli service serve ,默认模式为 development
。可以在 .env.development 文件下修改该模式的 NODE_ENV 。 - npm run build ,其实运行了 vue-cli service build ,默认模式为 production 。可以在
.env.production 文件下修改该模式的 NODE_ENV 。
1,如图新建文件并设置:
VUE_APP_BASE_API
:是我设置测试环境和生产环境时 用到的不同的接口路径;
可以直接使用 process.env.VUE_APP_BASE_API
拿到这个值;
2,使用如下:
新的运行命名后面要新增 --mode '自定义的名字'
;我这里为什么没有使用–mode development 或 production呢?
因为上面讲到vue默认开发环境就是development ,生产环境就是production ;所以不需要多此一举了;
3,模式的应用
有了模式的概念,就可以根据不同的环境配置模式,就不用每次打包时都去更改 vue.config.js 文件了。
比如在测试环境和生产环境, publicPath参数 (部署应用包时的基本 URL) 可能不同。
遇到这种情况就可以在 vue.config.js 文件中,将 publicPath 参数设置为:
publicPath: process.env.BASE_URL
设置之后,再在各个 .env.[mode] 文件下对 BASE_URL 进行配置就行了,这样就避免了每次修改配置文件的尴尬。其他的配置也是同理。