Gulpタスクからファイル/ディレクトリを除外する
私はすべての私のカスタム.JSファイル(ベンダーではないライブラリ)を連結して醜くするgulp rjsタスクを持っています。
私がやろうとしているのは、このタスクからいくつかのファイル/ディレクトリを除外することです(コントローラとディレクティブ)。
私のツリーのものです:
- application
- resources
- js
main.js
- vendor
- jquery
- modernzr
- angular
- controllers
- controller1
- controller2
- controller3
- directives
- directives1
- directives2
- directives3
- widgets
- widget1
- widget2
- widget3
- widget4
- modules
- modules1
- modules2
- modules3
- modules4
ここに私のgulp.js
dir = {
app: 'application',
dest: 'dest',
};
config = {
src: {
js: dir.app + '/resources/js'
},
dest: {
js: dir.dest + '/resources/js'
}
};
gulp.task('rjs', function() {
rjs({
baseUrl: config.src.js,
out: 'main.js',
name: 'main',
mainConfigFile: config.src.js + '/main.js',
exclude: [ 'jquery', 'angular']
})
.pipe(prod ? uglify({ mangle: false, outSourceMap: true, compress: { drop_console: true } }) : gutil.noop())
.pipe(gulp.dest(config.dest.js))
.pipe(filesize())
.pipe(dev ? connect.reload() : gutil.noop());
});
クイックアンサー
Srcでは、 "!"を使用して無視するファイルをいつでも指定できます。
例(jsフォルダとそのサブフォルダにあるすべての* .min.jsファイルを除外します。
gulp.src(['js/**/*.js', '!js/**/*.min.js'])
個々のファイルに対しても同じことができます。
拡張回答:
gulp.src(globs [、options])
与えられたglobまたはglobの配列に一致するファイルを発行します。プラグインにパイプ接続できるVinylファイルのストリームを返します。
globは、node-glob構文を参照するか、直接ファイルパスにすることができます。
ですから、 node-globのドキュメント を見れば、マッチングを行うためにminimatchライブラリを使っていることがわかります。
ミニマッチドキュメンテーション について、彼らは以下を指摘しています。
パターンが!で始まる場合性格、そしてそれは否定されます。
そしてそれがを使う理由です!シンボルはgulpタスクからファイル/ディレクトリを除外します