你如何将两个参数传递给webpack?

时间:2016-02-12 18:31:14

标签: gulp webpack

我正在使用webpack并需要传递配置文件和devtool参数。我尝试了一些双重参数的变化,没有通过。

//This works
gulp.task('js', function() {
  gulp.src(config.paths.mainJs)
    .pipe(webpack(require('./webpack.config.dev.js')
            //how do we sourcemap this?
            //devtool: "source-map"
         ))

//This fails
gulp.task('js', function() {
  gulp.src(config.paths.mainJs)
    .pipe(webpack({ 
             configuration: require('./webpack.config.dev.js'),
             devtool: "source-map"
         }))

我找到security issues进行配置。它没有提供任何这方面的例子。

2 个答案:

答案 0 :(得分:3)

假设./webpack.config.dev.js看起来像这样:

module.exports = {
   // configuration
};

你的require语句返回一个普通的JavaScript对象,所以你只能覆盖devtool道具:

var extend = require('extend');

gulp.task('js', function() {
  var config = extend({}, require('./webpack.config.dev.js'), {
    devtool: "source-map",
  });
  gulp.src(config.paths.mainJs)
    .pipe(webpack(config))
  ...
});

我使用extend npm包将配置组合成一个新对象,但如果你愿意,可以使用其他东西。您也可以完全忽略extend,只需将devtool属性设置为:

var config = require('./webpack.config.dev.js');
config.devtool = "source-map";

但请记住,nodejs会缓存所需的文件,因此如果您之后需要从Gulpfile.js中的其他位置webpack.config.dev.js,则devtool属性已设置为"source-map"。< / p>

答案 1 :(得分:1)

我已经找到了一个传递参数的方法,详见本文。

您可以使用package.json脚本部分通过npm传递args。

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "babel": "babel",
    "webpack-quizMaker": "set arg=quizMaker&&webpack",
    "webpack-quiz": "set arg=quiz&&webpack"
  },

有关详细信息,请参阅以下链接。

https://www.hipstercode.com/blog/27/