npm 中设置环境NODE_ENV变量,判断失败打印process.env.NODE_ENV确实是"development",但是判断process.env.NODE_ENV === "development" 是false
通过package.json 的scripts脚本 修改NODE_ENV的值来区分开发环境和生产环境。
"scripts": {
"build": "set NODE_ENV=production && webpack",
"dev": "set NODE_ENV=development && webpack-dev-server",
"test": "echo \"Error: no test specified\" && exit 1"
},
webpack.config.js
//webpack.config.js
// 首先引入插件1
const HtmlWebpackPlugin = require('html-webpack-plugin');
const isDev = process.env.NODE_ENV === "development";
console.log('process.env.NODE_ENV')
console.log(process.env.NODE_ENV)
console.log((process.env.NODE_ENV == "development" ? 'true1' : 'false1'))
console.log(isDev)
console.log(123)
执行 npm run dev
打印结果
process.env.NODE_ENV
development
false1
false
123
那么问题来了 ~~~ 打印出的process.env.NODE_ENV 的值已经是
development
但是判断起来依然是false。
解决办法如下
1. 修改package.json
"scripts": {
"build": "set NODE_ENV=production && webpack",
"dev": "set NODE_ENV=development&& webpack-dev-server",
"test": "echo \"Error: no test specified\" && exit 1"
},
因为你的NODE_ENV是【production 】,多了一个空格~~
1、set NODE_ENV=production&& webpack
2.
//webpack.config.js
// 首先引入插件1
const HtmlWebpackPlugin = require('html-webpack-plugin');
const isDev = (process.env.NODE_ENV.trim()) === "development";
再次打印
process.env.NODE_ENV
development
true1
true
123