ignore参数如何在gulp和nodemon中工作?

The*_*hap 2 javascript node.js nodemon gulp

我正在尝试创建一个gulpfile来保存我的个人javascript文件(.js),但忽略任何供应商/第三方库.

我的gulp文件如下:

var gulp = require("gulp"),
    uglify = require("gulp-uglify"),
    jshint = require("gulp-jshint"),
    jasmine = require("gulp-jasmine"),
    nodemon = require("gulp-nodemon");


// lint JS files for bad habbits
gulp.task("lint", function () {
    gulp.src(["**/*.js", "node_modules/*"])
        .pipe(jshint())
        .pipe(jshint.reporter("default"));
});


gulp.task("nodemon", function () {
    nodemon({
            script: "server.js", 
            ext: "html css jade js", 
            ignore: ["node_modules/*"]
        })
        .on("change", ["lint"])
        .on("restart", function () {
            console.log("Change detected, restarting server ...");
        });
});

gulp.task("default",["nodemon"]);
Run Code Online (Sandbox Code Playgroud)

当我在终端中运行"gulp default"命令时,仍然会在node_modules中输入javascript文件.我尝试了glob语法的变体,但我似乎无法实现所需的行为.

知道我哪里出错了?

谢谢.

Bal*_*zar 5

您设置的glob模式node_modules/*仅匹配node_modules目录根目录中的文件,但不匹配深度较高的所有子项.你需要设置为as node_modules/**/*,这将匹配所有内容.我建议你只匹配js文件node_modules/**/*.js.

你还需要否定模式!,gulp不知道你想要这样做,所以它看起来像:

gulp.src(['**/*.js', '!node_modules/**/*.js'])
Run Code Online (Sandbox Code Playgroud)

对于nodemon,可以使用相同的node_modules/**/*模式.

gulp用于globbing的库是minimatch.