process.env
process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,故无需使用 require()。
process(进程)其实就是存在nodejs中的一个全局变量。
process.env属性返回一个包含用户环境信息的对象。
配置环境变量
(1)、Windows配置
临时配置
#node中常用的到的环境变量是NODE_ENV,首先查看是否存在
set NODE_ENV
#如果不存在则添加环境变量
set NODE_ENV=production
#环境变量追加值 set 变量名=%变量名%;变量内容
set path=%path%;C:\web;C:\Tools
#某些时候需要删除环境变量
set NODE_ENV=
永久配置
右键(此电脑) -> 属性(R) -> 高级系统设置 -> 环境变量(N)...
(2)、Linux配置 临时 #node中常用的到的环境变量是NODE_ENV,首先查看是否存在 echo $NODE_ENV
#如果不存在则添加环境变量
export NODE_ENV=production
#环境变量追加值
export path=$path:/home/download:/usr/local/
#某些时候需要删除环境变量
unset NODE_ENV
#某些时候需要显示所有的环境变量
env
用 npm模块cross-env可以一行命令在各个平台配置
process-env
安装
npm install --save-dev cross-env
使用 在npm脚本中使用
{
"scripts": {
"build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
}
}
设置以后可以在webpack脚本中使用process.env.NODE_ENV
var env
if (process.env.NODE_ENV === "testing") {
env = require('../config/test.env')
} else if (process.env.NODE_ENV === "uat") {
env = require('../config/uat.env')
} else if (process.env.NODE_ENV === "production") {
env = require('../config/prod.env')
} else if (process.env.NODE_ENV === "develop") {
env = require('../config/develop.env')
}
webpack.DefinePlugin设置全局常量
DefinePlugin 允许创建一个在编译时可以配置的全局常量。这可能会对开发模式和发布模式的构建允许不同的行为非常有用。如果在开发构建中,而不在发布构建中执行日志记录,则可以使用全局常量来决定是否记录日志。这就是 DefinePlugin 的用处,设置它,就可以忘记开发和发布构建的规则。
plugins: [
new webpack.DefinePlugin({
'process.env': env
})
]
全局常量的使用
项目内文件中使用 .js/.vue
const API_HOST = process.env.AUTOTEST_HOST