Node.js 如何在网页包的预处理器中设置环境变量值?
我正在使用Webpack2并在其中添加了预处理器。现在我从命令行传递NODE_ENV变量值。在java脚本中,我能够访问该值,但我的预处理器条件失败了 请告诉我如何在预处理器中设置参数值 这是我的配置文件Node.js 如何在网页包的预处理器中设置环境变量值?,node.js,webpack-2,preprocessor,Node.js,Webpack 2,Preprocessor,我正在使用Webpack2并在其中添加了预处理器。现在我从命令行传递NODE_ENV变量值。在java脚本中,我能够访问该值,但我的预处理器条件失败了 请告诉我如何在预处理器中设置参数值 这是我的配置文件 var debug = process.env.NODE_ENV !== "production"; var webpack = require('webpack'); var path = require('path'); module.exports = { context: pat
var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');
var path = require('path');
module.exports = {
context: path.join(__dirname, "src"),
devtool: debug ? "inline-sourcemap" : null,
entry: "./js/app.js",
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader!preprocess-loader?+DEBUG',
// query: {
// presets: ['react', 'es2015'],
// plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy'],
// }
},
{
test: /\.css$/,
loader: "style-loader!css-loader!sass-loader"
}, {
test: /\.htm?$/,
exclude: /(node_modules|bower_components)/,
loader: 'preprocess-loader?+DEBUG',
}
]
},
output: {
path: __dirname + "/src/",
filename: "demo.min.js"
},
plugins: debug ? [] : [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
],
};
我的app.js
//@if process.env.NODE_ENV !=='production'
console.log("hi this dev")
console.log("environment",process.env.NODE_ENV)
//@endif
console.log("this is working")
当我看到控制台时,它将生产显示为process.env.NODE\u env)
的值,但如果失败,我用排除条件检查它是否正常工作
我用来运行的命令是npm start--env.NODE\u env='production'
请让我知道如何访问前置处理器中的变量
编辑1:
我提到我可以得到值,但它不是在我的预处理器中设置的
编辑2:
现在我得到了未定义的值,我是这样从答案中添加的
"dev": "set NODE_ENV=dev && webpack-dev-server",
@FahadNisar的可能副本:我试过这样做,在预处理器的if条件下,我无法访问它。这样,我的控制台显示值undefinedhi最终我从这篇文章中得到了答案