如何在webpack中的预处理器中设置环境变量值?

时间:2017-07-25 12:55:48

标签: node.js webpack-2 preprocessor

我正在使用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)

0 个答案:

没有答案