2017-01-16 78 views
2

這大概是makewebpack問題更多的問題。如何防止Webpack從Makefile食譜中運行多次

我使用良好的ol'make來管理依賴關係和構建,並且webpack用於構建JS組件。例如:

的Makefile:

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只運行一次,而不管有多少源文件發生了變化?

回答

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 
+0

謝謝!我也嘗試過,實際上,但無濟於事。 Webpack v1和v2之間可能存在差異,但是我的v1 Webpack只是將命令行中的模塊添加到'entry'中列出的第一個模塊。 – Boldewyn

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