0

次のgulpビルドプロセスを用意しました。

gulp.task("watch", function(){
    gulp.watch("public/admin/js/**/*.js", ["login"]);
}

gulp.task("login", function() {
    var js = [
        "!public/admin/js/api",
        "public/admin/js/*.js",
        "public/admin/js/controller/**/*.js",
        "public/admin/js/model/**/*.js",
        "public/admin/js/view/**/*.js"
    ];
    gulp.src(js)
        .pipe(concat("app.min.js"))
        .pipe(gulp.dest("public/admin/js"));
});

1) ルートにあるファイルを追加できません。public/admin/js/*.js、 動かない

2)重複が少しあると思います。誰かがこれを書き直すのを手伝ってくれます。/public/admin要するに、マイナス以下のすべてを連結したい/public/admin/api

PSapp.min.jsそしてもちろん、ルートにある最後のビルドから再度含めたくありません。

PPS私はこのビルドプロセスをいくつかのプロジェクトフォルダーに対して何度も繰り返しました。このロジックを再利用するためのアイデアはありません。現在、フォルダーごとに異なるウォッチを設定し、app.min.js をビルドしています。

4

1 に答える 1

0

「public/admin/js/」が繰り返され、それを使用するタスクはそれらだけではありません。その場合、独自の構成ファイルで module.exports を介してグローバル変数として設定しないのはなぜですか? そうすれば、require して $ に設定できます。この場合、タスクは次のようになります。

module.exports.JSadmin = "public/admin/js/"

var $ = require('./globalConfig');

gulp.task("watch", function(){
    gulp.watch($.JSadmin + "**/*.js", ["login"]);
}

他のタスクでは、ベースディレクトリをループして追加することで動的配列を作成し、その配列を通常どおり src に使用できます。

ルートにファイルを追加できないのは、除外ステートメントが最初であるためだと思います(理由を思い出せません)。さらに、アレイで使用するサブディレクトリを指定しているため、必要ありません。

詳細については、 glob 構文を確認してください。

于 2015-06-04T04:50:58.877 に答える