总结一下“NODE_ENV”相关的几个技术点
一. 概念 - node下的全局环境process.env
二. node运行环境下的设置与使用
window: set NODE_ENV=production
linux: export NODE_ENV=production
2. 永久设置
window:右键(此电脑) -> 属性(R) -> 高级系统设置 -> 环境变量(N)...
linux: vim /etc/profile
3. 常用脚本设置 - 将NODE_ENV=XXXX放到项目package.json的scripts命令中
"scripts": {
"build-win": "SET NODE_ENV=production && webpack --config build/webpack.config.js",
"build-linux": "EXPORT NODE_ENV=production && webpack --config build/webpack.config.js",
"build-mac": "NODE_ENV=production node build/dev-server.js"
}
4. 常用脚本设置 - 跨平台方案,第三方插件cross-env
"scripts": {
"build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
}
使用:
console.log(process.env.NODE_ENV)
三. webpack打包环境下的设置与使用
DefinePlugin允许我们创建全局变量,可以在编译时进行设置,因此我们可以使用该属性来设置全局变量来区分开发环境和正式环境。这就是 DefinePlugin的基本功能。
因此我们可以在webpack.config.js 中添加如下代码配置全局变量信息了,因为当webpack进行编译的时候会全局设置变量;如下代码:
module.exports = {
plugins: [
// 设置环境变量信息
new webpack.DefinePlugin({
AA: 'aa',
BB: 'bb',
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
}
})
]
}
这样使用时就与node运行环境下一样了:
console.log(process.env.NODE_ENV)
学习更多技能
请点击下方公众号
评论