使用gullow-if与gullow-useref和gullow-uglify
Using gulp-if with gulp-useref and gulp-uglify
我想使用gulp-useref将我的所有JavaScript文件连接到一个文件中。
在我的JavaScript文件中,我混合了预缩小和未缩小 我只想丑化尚未缩小的文件(出于构建性能的原因)和https://github.com/jonkemp/gulp-useref#transform-streams表明这是可能的(事实上,这看起来很容易)。以下是我的Gulp任务定义: 这是有效的,因为我得到了一个连接的文件,但未缩小的文件仍然没有缩小(预缩小的文件仍在缩小——正如预期的那样)。 我的代码部分基于此:https://github.com/craigjennings11/gulp-uglifyjs 知道为什么我的文件没有被缩小吗? 参考gulp.task('compile', function () {
return gulp.src('index.html')
.pipe(useref({}, lazypipe().pipe(function() {
return gulpif(['*.js', '!*.min.js'], uglify());
})))
.pipe(gulp.dest(paths.build));
});
对于其他遇到此问题的人:我发现一旦我开始将globs放入gulpif
的条件参数中的数组中,就必须使用**/
通配符模式,例如
gulp.task('compile', function () {
return gulp.src('index.html')
.pipe(useref({}, lazypipe().pipe(function() {
return gulpif(['**/*.js', '!**/*.min.js'], uglify());
})))
.pipe(gulp.dest(paths.build));
});
然后它对我来说非常有效。
这里的问题是useref只传递已连接的文件名,而不是已连接的单个文件名。
//in html
<!-- build:js assets/scripts/concat.js --> // <-- this one
<script src="assets/scripts/jquery.min.js"></script> // <-- not this one
<script src="assets/scripts/gsap.min.js"></script> // <-- not this one
<script src="assets/scripts/script1.js"></script> // <-- not this one
<script src="assets/scripts/script2.js"></script> // <-- not this one
<!-- endbuild -->
因此,在管道之后的内容必须应用于整个凹入的文件。
但只要稍微重新排列一下,你就可以做这样的事情:
//in html
<!-- build:js assets/scripts/libs.js -->
<script src="assets/scripts/jquery.min.js"></script>
<script src="assets/scripts/gsap.min.js"></script>
<!-- endbuild -->
<!-- build:js assets/scripts/main.js -->
<script src="assets/scripts/script1.js"></script>
<script src="assets/scripts/script2.js"></script>
<!-- endbuild -->
这样,你就可以使用gullow-if将main.js隔离到uglify:
.pipe(gulpif('main.js', uglify()))
你试过这个吗?
gulp.task('compile', function () {
return gulp.src('index.html')
.pipe(useref())
.pipe(gulpif(['*.js', '!*.min.js'], uglify()))
.pipe(gulp.dest(paths.build));
});
- 命令行中的Uglify js;不要弄乱变量名
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- 如何使gullow任务跨平台.尤其是吞咽贝壳
- 如何按顺序运行gullow任务
- nodeJS中的uglify js“;找不到模块“”;
- gullow加载插件而不是加载插件
- 浏览器与gullow和Ghost博客同步
- 如何将SignalR包含在gullow构建过程中
- 正在将“grunt.file.readJSON”转换为gullow
- 我需要将一个参数从另一个任务传递给gullow任务,或者用runSequence调用的函数替换一个任务
- 接收'错误:找不到模块'使用browserfy、gullow、react.js
- 用gullow将文件更改到位
- 如何使用coffescapet与uglify在一起
- 如何通过grunt contrib uglify按顺序缩小js文件
- 如何从Node.js运行gullow任务-gullow.start()的任何更好的替代方案
- 如何在javascript函数中运行一个接一个的gullow函数
- 从gullow任务运行一个npm脚本
- 使用gullow-if与gullow-useref和gullow-uglify
- gullow uglify的未处理错误事件
- gullowinclude with gullow uglify dons'不起作用