如何防止Webpack从Makefile配方中多次运行

时间:2017-01-16 16:25:50

标签: makefile build webpack gnu-make

这可能是make而非webpack问题。

我正在使用好的'make来管理依赖项和构建,并使用webpack来构建JS组件。例如:

生成文件:

foo.js: src/foo.js
    webpack -p

bar.js: src/bar.js
    webpack -p

webpack.config.js

var webpack = require('webpack');

module.exports = {
    entry: {
      'foo': './src/foo.js',
      'bar': './src/bar.js',
    },
    output: {
        path: './',
        filename: '[name].js',
    }
};

很明显,每当src/{foo,bar}.js任何更改时,Webpack都会运行并构建这两个文件。这可能无法修复,因为我已经读到这是故意的(为了满足模块之间可能的交互)。

然而,当两个发生变化时,Webpack将运行两次,因为这些食谱彼此不知道。这是不必要的,并且很快失控。

是否有可能“收集”文件并使Webpack只运行一次,与多少源文件的更改无关?

2 个答案:

答案 0 :(得分:0)

您可以从命令行指定入口点:

foo.js: src/foo.js package.json
    webpack -p --entry src/foo.js

bar.js: src/bar.js package.json
    webpack -p --entry src/bar.js

答案 1 :(得分:0)

This answer让我走上正轨。 GNU Make只运行一次所谓的pattern rules的配方。因此,将我的Makefile更改为可以完成一次运行Webpack的技巧:

foo.j% bar.j%:
    webpack -p

foo.js: src/foo.js
bar.js: src/bar.js
相关问题