![](/img/trans.png)
[英]import all variables from a file.js with an “ import './file.js' ” summoning
[英]How to import all tasks from another gulp file.js
是否有可能有一個主 gulpfile.js 從中調用來自其他 gulp files.js 的任務? 將子 gulpfile.js 簡單地“要求”到主文件中是行不通的。 我有一個平台項目,其中包括幾個帶有單獨 gulpfiles 的子項目,所以我需要一個解決方案來管理主項目中的所有子 gulpfiles
可以有一個主 gulpfile.js 從中使用require-dir
模塊從其他 gulp files.js 調用任務。 從項目 README 中使用它是這樣的:
如果您的gulpfile.js
開始變得太大,您可以使用require-dir模塊將任務拆分為單獨的文件。
想象一下以下文件結構:
gulpfile.js
tasks/
├── dev.js
├── release.js
└── test.js
安裝require-dir
模塊:
npm install --save-dev require-dir
gulpfile.js
添加到您的gulpfile.js
文件中。
var requireDir = require('require-dir');
var dir = requireDir('./tasks');
我創建了一個特殊的gulp-require-tasks模塊,它將幫助您將gulpfile.js
拆分為單獨的較小任務文件。 請參閱README示例和文檔。
請考慮使用它,讓我知道它是否適合您! 如果您有任何改進建議或想法,我將很樂意接受。
如果我想讓它面向未來並且不想為它安裝另一個包怎么辦。
以下適用於我的 gulp 4,沒有任何額外的插件。
在taskfile.js
:
const { src, dest } = require('gulp');
const mytask = function () {
return src('assets/**/*')
.pipe(dosomething())
.pipe(dest('dest');
}
module.exports = {
mytask
}
在gulpfile.js
:
const { mytask } = require('taskfile.js');
// use in other tasks
gulp.task('manythings', gulp.series(..., mytask, ...));
// or use directly as 'gulp mytask'
module.exports = {
mytask
}
我會向不想包含單獨模塊或重構的任何人推薦這個答案:
https://stackoverflow.com/a/5809968/40769
var fs = require('fs');
// file is included here:
eval(fs.readFileSync('tools.js')+'');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.