是否可以有一个主gulpfile.js,从它调用其他gulp文件.js中的任务?简单地将子gulpfile.js“require”到主gulpfile.js中是行不通的。我有一个平台项目,其中包括几个具有单独gulpfiles的子项目,所以我需要一个解决方案来管理主gulpfiles中的所有子gulpfiles
e4eetjau1#
可以有一个主gulpfile.js,从它调用其他gulp files.js中的任务,使用require-dir模块。在项目README中,可以这样使用它:
require-dir
如果您的gulpfile.js开始变得太大,您可以使用require-dir模块将任务拆分为单独的文件。设想以下文件结构:
gulpfile.js
gulpfile.js tasks/ ├── dev.js ├── release.js └── test.js
安装require-dir模块:
npm install --save-dev require-dir
将以下行添加到gulpfile.js文件中。
var requireDir = require('require-dir'); var dir = requireDir('./tasks');
uurity8g2#
我已经创建了一个特殊的gulp-require-tasks模块,它可以帮助你将gulpfile.js拆分成单独的小任务文件。请参阅README的示例和文档。请考虑使用它,并让我知道它是否适合你!如果你有任何改进的建议或想法,我将欣然接受。
2g32fytz3#
如果我想让它经得起未来的考验,而不想为它安装另一个软件包,该怎么办?以下代码适用于我的Gulp 4,* 没有 * 任何额外的插件。在taskfile.js中:
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 }
qojgxg4l4#
对于那些不想包含单独模块或重构的人,我推荐以下答案:https://stackoverflow.com/a/5809968/40769
var fs = require('fs'); // file is included here: eval(fs.readFileSync('tools.js')+'');
4条答案
按热度按时间e4eetjau1#
可以有一个主gulpfile.js,从它调用其他gulp files.js中的任务,使用
require-dir
模块。在项目README中,可以这样使用它:将任务拆分到多个文件
如果您的
gulpfile.js
开始变得太大,您可以使用require-dir模块将任务拆分为单独的文件。设想以下文件结构:
安装
require-dir
模块:将以下行添加到
gulpfile.js
文件中。uurity8g2#
我已经创建了一个特殊的gulp-require-tasks模块,它可以帮助你将
gulpfile.js
拆分成单独的小任务文件。请参阅README的示例和文档。请考虑使用它,并让我知道它是否适合你!如果你有任何改进的建议或想法,我将欣然接受。
2g32fytz3#
如果我想让它经得起未来的考验,而不想为它安装另一个软件包,该怎么办?
以下代码适用于我的Gulp 4,* 没有 * 任何额外的插件。
在
taskfile.js
中:在
gulpfile.js
中:qojgxg4l4#
对于那些不想包含单独模块或重构的人,我推荐以下答案:
https://stackoverflow.com/a/5809968/40769