我正在使用gulp-usemin,它只在更新单个html文件时工作正常,但是当我尝试更新多个html文件时,它会崩溃。这是我的usemin任务。请注意,我已经复制了代码,一次是login.html文件,另一次是index.html文件。我想要做的只是传递像gulp.src([_appdir + '/login.html', _appdir + '/index.html'], {base: _appdir})
这样的人,但那似乎是我的任务炸弹。即使尝试使用*.html
而我也遇到了同样的问题。
gulp.task('usemin', ['browserify', 'sass'], function() {
gulp.src([_appdir + '/images/**/*'], {base: _appdir})
.pipe(gulp.dest(_publicdir));
gulp.src([_appdir + '/login.html'], {base: _appdir})
.pipe(usemin({
css: [minifyCss({keepSpecialComments: 0}), 'concat', rev()],
html: [gulpif(argv.production, minifyHtml({conditionals: true, quotes: true}))],
jsOldIE: [uglify(), rev()],
jsVendor: [uglify(), rev()],
jsBundle: [
gulpif(argv.production, rev()),
gulpif(argv.production, uglify()),
gulpif(argv.production, rename({suffix: '.min'}))
]
}))
.pipe(gulp.dest(_publicdir));
return gulp.src([_appdir + '/index.html'], {base: _appdir})
.pipe(usemin({
css: [minifyCss({keepSpecialComments: 0}), 'concat', rev()],
html: [gulpif(argv.production, minifyHtml({conditionals: true, quotes: true}))],
jsOldIE: [uglify(), rev()],
jsVendor: [uglify(), rev()],
jsBundle: [
gulpif(argv.production, rev()),
gulpif(argv.production, uglify()),
gulpif(argv.production, rename({suffix: '.min'}))
]
}))
.pipe(gulp.dest(_publicdir));
});
答案 0 :(得分:2)
gulp-usemin
目前有一个错误,阻止您使用同名的多个<!-- build:name ... -->
条评论。如果同一文件中有两个<!-- build:css ... -->
部分,这也会触发错误。
我最后使用useref
,而我甚至不需要更改HTML。
答案 1 :(得分:0)
这个问题很老但问题很常见,网上很多人都在寻找解决方案,谷歌搜索结果中没有明确的解决方案。我是gulp和webdev的新手,很抱歉给您带来不便。
对于没有参数的简单函数,您只需删除括号:
jsOldIE: [uglify, rev],
如果您需要参数,请创建匿名函数
css: [
function() { return minifyCss({keepSpecialComments: 0}); },
'concat', rev],
答案 2 :(得分:0)
你需要使用gulp-foreach
gulp.task('usemin', ['browserify', 'sass'], function() {
gulp.src([_appdir + '/images/**/*'], {base: _appdir})
.pipe(gulp.dest(_publicdir));
return gulp.src([_appdir + '/login.html', _appdir + '/index.html'], {base: _appdir})
.pipe(foreach(function (stream, file) {
return stream.pipe(usemin({
css: [minifyCss({keepSpecialComments: 0}), 'concat', rev()],
html: [gulpif(argv.production, minifyHtml({conditionals: true, quotes: true}))],
jsOldIE: [uglify(), rev()],
jsVendor: [uglify(), rev()],
jsBundle: [
gulpif(argv.production, rev()),
gulpif(argv.production, uglify()),
gulpif(argv.production, rename({suffix: '.min'}))
]
}))
.pipe(gulp.dest(_publicdir));
}))
})