Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在网页包的预处理器中设置环境变量值?_Node.js_Webpack 2_Preprocessor - Fatal编程技术网

Node.js 如何在网页包的预处理器中设置环境变量值?

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

我正在使用Webpack2并在其中添加了预处理器。现在我从命令行传递NODE_ENV变量值。在java脚本中,我能够访问该值,但我的预处理器条件失败了 请告诉我如何在预处理器中设置参数值

这是我的配置文件

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最终我从这篇文章中得到了答案