如何在webpack.config文件中使用变量?

时间:2017-03-20 06:47:18

标签: webpack webpack-2

我正在使用webpack 2.2.1。

我想在命令行中定义一个变量,然后在我的构建配置中使用该变量。

所以给webpack命令行看起来像(或者它需要的东西):

webpack "--output-path=..." "--env.wibble=NOMF"

我怎么能写出类似的东西:

... 

const config = {
  entry: {
    ...
  },
  output: {
    ...
  },

  plugins: [
    ...
    new CopyWebpackPlugin([{
      from: '/somepath/' + env.wibble,
      to: 'something.js'
    }]),    
    ...
  ],

};

module.exports = config;

如何在构建中定义和使用变量?

我故意不在这里使用NODE_ENV(如果可以的话)。

1 个答案:

答案 0 :(得分:2)

--env选项用于将定义的属性传递给webpack配置,但为此,您需要导出一个返回配置对象的函数,而不是对象本身。

您的配置将是:

module.exports = function(env) {
  const config = {
    entry: {
      // ...
    },
    output: {
      // ...
    },
    plugins: [
      new CopyWebpackPlugin([{
        from: '/somepath/' + env.wibble,
        to: 'something.js'
      }]),    
    ],
  };
  return config;
};

您可以使用箭头函数隐式返回对象来缩短它:

module.exports = env => ({
  entry: {
    // ...
  },
  output: {
    // ...
  },
  plugins: [
    new CopyWebpackPlugin([{
      from: '/somepath/' + env.wibble,
      to: 'something.js'
    }]),    
  ],
});

另见Exporting a function to use --env