Webpack重复输出

时间:2016-03-20 13:33:23

标签: webpack

在我的webpack配置文件中,我有通常的输出配置:

output: {
  path: buildPath,
  filename: 'scripts/boundle.min.js'
}

但是,我希望/buildbuildPath)和另一个输出到我有Cordova设置的文件夹。目前我必须将/build复制粘贴到Cordova,但我希望Webpack在两个不同的路径上输出两个重复的输出。这可能吗?

解决方案

我已经在构建生产时已经运行了一些插件(例如UglifyJsPlugin),所以我在if语句中实现了bebraw's解决方案:

if (production) {
  configForCordova = _.assign({}, config)
  configForCordova.output = {
    path: buildPathCordova,
    filename: 'scripts/boundle.min.js'
  }
  module.exports = [config, configForCordova]
} else {
  module.exports = config
}

我每周只生产一到两次生产,所以它没有问题,因为它很慢。 &&对Windows不太友好。它似乎只适用于W10。

2 个答案:

答案 0 :(得分:2)

只需添加一个名称相同但源文件相同的第二个条目。然后,您可以拥有任意数量的输出文件:

module.exports = {
    entry: {
        foo: 'bar.js',
        foo2: 'bar.js',
        '../path/to/dist': 'bar.js'
    },

    output: {
        path: path.join(__dirname, 'public'),
        filename: '[name].bundle.js',
    }
};

答案 1 :(得分:1)

在webpack中实现此目的的一种复杂方法是​​编写如下配置:

...

module.exports = [config1, config2]; // alter output per config

问题是它将运行webpack两次,这将会很慢。

考虑在webpack之外处理这个问题。您可以在package.json 脚本中轻松处理。例如。 "build": "webpack && cp -rf build cordova_build"