我正在使用webpack 2并在其中添加了预处理器。现在我从命令行传递NODE_ENV变量值。在java脚本中我能够访问该值,但我的预处理器条件正在失败 请任何人让我知道如何在预处理器中设置参数值?
这是我的配置文件
sceneRoot.getOverlay().add(overlayView);
我的app.js
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 }),
],
};
当我看到控制台时,它显示生产为//@if process.env.NODE_ENV !=='production'
console.log("hi this dev")
console.log("environment",process.env.NODE_ENV)
//@endif
console.log("this is working")
的值,但如果失败,我检查了排除条件它工作正常
命令是 npm start --env.NODE_ENV =' production' 请告诉我如何在预处理器中访问变量?
编辑1: 我提到我可以获得价值,但它没有在我的预处理器中设置
编辑2: 现在我正在获得未定义的价值,我从这个答案中添加了这样的方式
process.env.NODE_ENV)