我想導入全部並非全部我的node_modules
。一條規則會很好,而不是爲每個模塊編寫新規則。單個吞嚥任務多個來源和目錄
通常我的任務會是這個樣子:
gulp.task('node_modules', function() {
return gulp.src('node_modules/**/*')
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(gulp.dest('build/node_modules'))
.pipe(reload({ stream: true }))
})
但因爲我只想要那些有用到我的項目,而不是,例如,吞有用的那些,我需要指定它們。但是,如果我指定了多個來源,則它們將全部結合在gulp.dest
文件夾中,因此不起作用。另一方面,如果我將呼叫抽象爲吞吐任務(如下面的想法),我想我可能遇到缺少多個返回值的問題。
我的想法是這樣的:
function node_module(module) {
gulp.task('node_module', function() {
return gulp.src(`node_modules/${module}/**/*`)
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(gulp.dest(`build/node_modules/${module}`))
.pipe(reload({ stream: true }))
})
}
gulp.task('node_modules', function() {
var rv
['event-emitter-es6', 'object-hash', 'urijs'].forEach(m => rv = node_module(m))
return rv
})
你應該看看打包成webpack或browserify之類的捆綁軟件。維護這將是一場噩夢,並且很容易中斷(例如,由於'npm dedupe')。 –
@SvenSchoenung - 謝謝,這可能是真的。我剛剛在webpack中完成了我的第一個項目,我想回過頭來看看它是從哪裏來的。在這種情況下,我的節點模塊都沒有依賴關係。所以我仍然喜歡答案,即使它只適用於獨立模塊。 –