我做了可重用的 gulp 任务,因为我们有多个前端项目都使用 gulp。我发现最好的方法是创建一个私有 npm 包,我将其添加到其他项目中,并使用它的 git URL。
构建可共享任务的 Node.js 模块
您只需要一个带有index.js 和package.json 的回购协议。安装必要的 gulp 依赖并将它们保存在包文件中。
在index.js 中,将要重用的功能导出为任务。
const gulp = require('gulp'),
gulpif = require('gulp-if'),
concat = require('gulp-concat'),
args = require('yargs').argv;
module.exports = {
concat: function(src, dest, options) {
return gulp.src(src)
.pipe(gulpif(args.prod, concat()))
.pipe(gulp.dest(dest));
}
};
由于此模块将使用完成任务所需的大多数依赖项,因此您的其他项目依赖项将缩减到他们明确需要的最低限度。
使用你的任务模块
然后,在您的其他项目中,使用其 git URL 安装包。
npm install --save-dev git+ssh://git@github.com:onebitrocket/onebitrocket-gulp-utils.git
这种 git url 格式也适用于 yarn。
在您项目的gulpfile.js 中,使用它即可。
const gulp = require('gulp'),
onebitrocket = require('onebitrocket-gulp-utils');
// use a function which returns the result of your util.
gulp.task('js', () => onebitrocket.concat('src/**/*.js', 'www/'));
注意:无需将包发布到 npm 注册表即可使用它。您所需要的只是对 repo 的读取访问权限。