![](/img/trans.png)
[英]CSS and JS minification doesn't work with gulp-filter, gulp-csso, gulp-uglify
[英]gulp-include with gulp-uglify doesn't work
我有一个使用gulp.task 'scripts'
gulp-uglify
gulp.task 'scripts'
。 然后,我还添加了gulp-import
,它没有用。 如果我只做uglify
工作。 如果我只import
它可以工作。 但是,如果我同时做两个都行不通。 这是函数:
gulp.task('scripts', function(){
gulp.src([
'testgulp/**/*.js', '!testgulp/**/_*.js', '!testgulp/**/*.min.js'
])
.pipe(include()) //if I comment only this line, uglify works
.on('error', console.log)
.pipe(uglify()) //if I comment only this line, include works
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest(function(file) { return file.base; }));
});
然后在终端上尝试同时执行以下操作时,我得到此响应:
/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/map-stream/index.js:103
throw err
^
GulpUglifyError: unable to minify JavaScript
at createError (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/lib/create-error.js:6:14)
at wrapper (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/node_modules/lodash/_createHybrid.js:87:15)
at trycatch (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/minifier.js:26:12)
at DestroyableTransform.minify [as _transform] (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/gulp-uglify/minifier.js:76:19)
at DestroyableTransform.Transform._read (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:159:10)
at DestroyableTransform.Transform._write (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:147:83)
at doWrite (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:313:64)
at writeOrBuffer (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:302:5)
at DestroyableTransform.Writable.write (/Applications/MAMP/htdocs/git/personal-sandrina-p/_main/v3/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:241:11)
at Stream.ondata (stream.js:31:26)
我离开了Koala App,添加/添加功能很棒,所以我想对Gulp做同样的事情。 我尝试了gulp-include和gulp-import,两者都有相同的问题。 我做错了什么? 谢谢 :)
-编辑-我也尝试了gulp -sync并在minifyit任务上对timeout()进行了硬编码,但无法解决问题...
好吧,我想我找到了问题。 首先,我需要安装gulp-util才能更好地找出错误所在。
gulp.task('scripts', function(){
gulp.src([
'assets/scripts/**/*.js',
'!assets/scripts/**/_*.js',
'!assets/scripts/**/*.min.js'
])
.pipe(include())
.on('error', console.log)
.pipe(uglify().on('error', gutil.log)) //gulp-util
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest(function(file) { return file.base; }));
});
然后是ES5速记uglify引发的错误。 我还必须安装gulp-babel,以及最终代码:
gulp.task('scripts', function(){
gulp.src([
'assets/scripts/**/*.js',
'!assets/scripts/**/_*.js',
'!assets/scripts/**/*.min.js'
])
.pipe(include())
.on('error', console.log)
.pipe(babel({
presets: ['es2015'], //this fixed a shorthand javascript error
compact: true
}))
.pipe(uglify().on('error', gutil.log)) // gulp-util
.pipe(rename({ suffix: '.min' }))
});
这解决了我的问题。 希望能帮助别人:)
您应该使用泵模块。
var pump = require('pump');
gulp.task('scripts', function(){
pump([
gulp.src([...]),
ugilfy(),
rename({ suffix: '.min' }),
gulp.dest(...)
]);
});
您会看到为什么使用泵
只需将它们作为单独的函数,并在丑陋的函数之前运行包含函数:
gulp.task('include,function({
// include code here
});
gulp.task('uglify',['include'],function({
// uglify code here
});
当您运行uglify函数时,[]之间的include函数将在uglify函数之前运行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.