gpt4 book ai didi

gulp - 如何将参数传递给 gulp-watch 调用的任务

转载 作者:行者123 更新时间:2023-12-04 18:05:42 25 4
gpt4 key购买 nike

我正在尝试将参数传递给 gulp-watch 正在调用的任务。我需要它,因为我正在尝试构建一个模块化框架。

  • 因此,如果模块 1 中的文件发生更改,则不需要重建其他模块。
  • 而且我只想要一个函数来为每个模块创建连接和丑化的文件。

  • 这是我到目前为止得到的:
    //here I need the 'module' parameter
    gulp.task('script', function(module) { ... }

    gulp.task('watch', function() {
    gulp.watch('files/in/module1/*.js', ['script']); //here I want to pass module1
    gulp.watch('files/in/module2/*.js', ['script']); //here I want to pass module2
    });

    许多文档/示例似乎已经过时(gulp.run()、gulp.start())。

    我希望有人可以在这里帮助我。

    最佳答案

    我遇到了同样的问题,搜索了一段时间,我想出的“最干净”的方法是使用 .on() gulp.watch() 的事件处理程序,以及 .env gulp-util 的属性(property):

    var gulp = require('gulp');
    $.util = require('gulp-util');

    var modules = {
    module1: {}, // awesome module1
    module2: {} // awesome module2
    };

    gulp.task('script', function(){
    var moduleName = $.util.env.module;
    // Exit if the value is missing...
    var module = modules[moduleName];
    if (!module) {
    $.util.log($.util.colors.red('Error'), "Wrong module value!");
    return;
    }
    $.util.log("Executing task on module '" + moduleName + "'");
    // Do your task on "module" here.
    });


    gulp.task('watch', function () {
    gulp.watch(['files/in/module1/*.js'], ['script']).on('change', function () {
    $.util.env.module = 'module1';
    });
    gulp.watch(['files/in/module2/*.js'], ['script']).on('change', function () {
    $.util.env.module = 'module2';
    });
    });

    gulp-util如果您需要从 shell 传递(全局)参数,也可以派上用场:
     [emiliano@dev ~]# gulp script --module=module1 --minify

    希望这对其他人有帮助!

    问候。

    关于gulp - 如何将参数传递给 gulp-watch 调用的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28800435/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com