WeFlow帮助文档

浏览11471
更新时间2022-04-11

或许你已经发现,tmt-workflow 所有项目只共享一份 node_modules,所有的 task 也都是定义在 gulpfile.js 外的 _tasks 目录下,其实现方式其实很简单。

我们先看项目下面的 gulpfile.js

var gulp = require('gulp');
var fs = require('fs');
var path = require('path');

//注册
var deep = 3;
run_tasks('_tasks');

function run_tasks(tasks_path) {
    if (--deep < 0) {
        throw new Error('something wrong in require tasks!');
        return;
    }

    tasks_path = path.join('../', tasks_path);

    if (fs.existsSync(tasks_path)) {
        require(tasks_path)(gulp);
    } else {
        run_tasks(tasks_path);
    }
}

每一次执行 gulp 任务时,会向上寻找 _tasks 目录,这里定义的层级为 3,也就是在 gulpfile.js 会向上寻找 3 个层级,只要 _tasks 在这 3 个层级内即可,如果你的目录很深很深,改一下这里的 3 即可。

接着看 _tasks 目录下的 index.js:

 fs.readdirSync(__dirname).filter(function (file) {
    return (file.indexOf(".") !== 0) && (file.indexOf('task') === 0);
}).forEach(function (file) {
    var registerTask = require(path.join(__dirname, file));
    registerTask(gulp, config);
});

其实就是加载当前目录下所有以 task 开头的文件,我们将各个 gulp 任务都定义成一个个以 task 开头的 js 文件,这样,就动态的注册了所有 gulp 任务,共用了一个 node_modules

相关视频

更多

免费

php8,我来也
初级php8,我来也

321832次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382457次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282842次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13418次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号