我正在用 Gulp 完成 johnpapa 的自动化课程,似乎碰到了一面奇怪的墙:当我尝试运行 CSS 和 JS 连接和缩小任务时,它无法进行缩小。
这是任务:
gulp.task('optimize', ['inject'], function () {
var assets = $.useref.assets({searchPath: ''});
var cssFilter = $.filter(['**/*.css'], {restore: true});
var jsFilter = $.filter(['**/*.js'], {restore: true});
return gulp
.src(config.indexFile)
.pipe($.rename('test.jsp'))
.pipe($.plumber())
.pipe(assets)
.pipe(cssFilter)
.pipe($.csso())
.pipe(cssFilter.restore)
.pipe(jsFilter)
.pipe($.uglify())
.pipe(jsFilter.restore)
.pipe(assets.restore())
.pipe($.useref())
.pipe(gulp.dest(config.indexLocation))
;
});
inject
是将 css 和 js 引用注入索引文件的任务(正常工作),$
isrequire('gulp-load-plugins')({lazy: true})
和config.indexFile
is index.jsp
。
我的文件结构(与课程中的不同)是:
- ModuleDir
- dist
- css
- lib.css
- app.css
- fonts
- images
- js
- lib.js
- app.js
- css
- js
- web-app
- InnerDir
- index.jsp
- test.jsp
- package.json, bower.json, etc. (all the required files)
基本上,index.jsp 针对 CSS 和 JS 库和应用程序资产进行处理,这些资产被缩小并连接成 lib.css、lib.js、app.css 和 app.js。之后,所有这些都被注入到名为 test.jsp 的 index.jsp 的副本中。
资产收集、连接和注入工作非常出色。缩小 - 不是那么多......
任何想法或指针将不胜感激。