2

個人の JavaScript ファイル (.js) をリントするが、ベンダー/サードパーティのライブラリを無視する gulpfile を作成しようとしています。

私の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"]);

端末で「gulp default」コマンドを実行すると、まだnode_modulesの JavaScript ファイルがリントされます。glob 構文のバリエーションを試しましたが、目的の動作を実現できないようです。

私がどこで間違ったのか分かりますか?

ありがとう。

4

2 に答える 2

5

設定したグロブパターンnode_modules/*は、ディレクトリのルートにあるファイルのみに一致しますが、よりnode_modules深い深さのすべての子には一致しません。is as を設定する必要がありnode_modules/**/*ます。これはすべてに一致します。jsただし、ファイルのみを一致させることをお勧めしますnode_modules/**/*.js

!また、でパターンを否定する必要があります。gulpはそれを実行したいことを認識していないため、次のようになります。

gulp.src(['**/*.js', '!node_modules/**/*.js'])

nodemonの場合、同じことに従ってnode_modules/**/*パターンを使用できます。

gulp がグロビングに使用するライブラリは minimatch です。

于 2014-12-28T07:43:03.070 に答える