मैं भी ऐसी बात की जरूरत के लिए सबसे अधिक डिफ़ॉल्ट खोल के लपेटता है, इसलिए मैं पहले और प्रत्येक निर्माण के बाद खोल आदेश पर अमल करने के लिए एक सुपर सरल प्लगइन संकलित।
'use strict';
var exec = require('child_process').exec;
function puts(error, stdout, stderr) {
console.log(stdout);
}
function WebpackShellPlugin(options) {
var defaultOptions = {
onBuildStart: [],
onBuildEnd: []
};
this.options = Object.assign(defaultOptions, options);
}
WebpackShellPlugin.prototype.apply = function(compiler) {
const options = this.options;
compiler.plugin("compilation", compilation => {
if(options.onBuildStart.length){
console.log("Executing pre-build scripts");
options.onBuildStart.forEach(script => exec(script, puts));
}
});
compiler.plugin("emit", (compilation, callback) => {
if(options.onBuildEnd.length){
console.log("Executing post-build scripts");
options.onBuildEnd.forEach(script => exec(script, puts));
}
callback();
});
};
module.exports = WebpackShellPlugin;
फिर अपने webpack config में
:
plugins: [
new WebpackShellPlugin({
onBuildStart: ['echo "hello world"'],
onBuildEnd: ['echo "goodbye world"']
})
]
इस सुपर बुनियादी है और ठीक से async स्क्रिप्ट का समर्थन नहीं करते। लेकिन यह काम करता है। संशोधित करने के लिए स्वतंत्र महसूस करें हालांकि आप फिट देखते हैं।
MIT लाइसेंस के तहत इस कोड पर विचार करें।
नोड 4.x और चलाने के लिए आवश्यक है, क्योंकि मैं यहां कुछ es6 सुविधाओं का उपयोग करता हूं।
स्रोत
2016-02-11 11:01:10
धन्यवाद, कि लापता लिंक था। मैं किसी भी तरह सर्कल में जा रहा था और पूरी तरह से इस विकल्प को याद किया। – Monokai