Oam*_*Psy 218 minify requirejs uglifyjs gulp
我有一个gulp rjs任务连接和uglifies我所有的自定义.JS文件(任何非供应商库).
我想要做的是从这个任务(控制器和指令)中排除一些文件/目录.
继承我的树:
- 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
Run Code Online (Sandbox Code Playgroud)
在这里,我的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());
});
Run Code Online (Sandbox Code Playgroud)
avc*_*lle 497
快速回答
在src上,您始终可以使用"!"指定要忽略的文件.
示例(您要排除js文件夹和子文件夹中的所有*.min.js文件:
gulp.src(['js/**/*.js', '!js/**/*.min.js'])
Run Code Online (Sandbox Code Playgroud)
您也可以为单个文件执行此操作.
扩大答案:
gulp.src(globs [,options])
发出匹配提供的glob或一组globs的文件.返回可以通过管道传输到插件的Vinyl文件流.
glob指的是node-glob语法,或者它可以是直接文件路径.
因此,在查看node-glob文档时,我们可以看到它使用minimatch库进行匹配.
在minimatch文档中,他们指出了以下内容:
如果模式以a开头!性格,然后它被否定.
这就是为什么使用!符号将从gulp任务中排除文件/目录
Jai*_*ina 10
Gulp 在引擎盖下使用 micromatch 来匹配 globs,所以如果你想排除任何 .min.js 文件,你可以通过使用扩展的 globbing功能来实现相同的功能,如下所示:
src("'js/**/!(*.min).js")
Run Code Online (Sandbox Code Playgroud)
基本上它说的是:在js中的任何级别获取所有不以*.min.js 结尾的内容
归档时间: |
|
查看次数: |
134551 次 |
最近记录: |