我有以下的项目结构
assets
--javascripts
----controllers
------somefile.js
------somefile.js.coffee我希望编译咖啡脚本文件(*.js.coffee),然后将所有文件连接起来,然后缩小它们。
var gulp = require('gulp')
var concat = require('gulp-concat')
var coffee = require('gulp-coffee');
var uglify = require('gulp-uglify')
var gulpFilter = require('gulp-filter');
gulp.task('scripts', function() {
var coffeeScriptFilesFilter = gulpFilter(['*.js.coffee']);
return gulp.src(['assets/javascripts/**/*'])
.pipe(coffeeScriptFilesFilter)
.pipe(coffee())
.pipe(coffeeScriptFilesFilter.restore())
.pipe(concat('application.js'))
.pipe(gulp.dest('public'))
.pipe(uglify().on('error', errorHandler));
function errorHandler (error) {
console.log(error.toString());
this.emit('end');
}
});不幸的是,我收到了这个错误
Error in plugin 'gulp-uglify'
Message:
/var/www/gulp/public/application.js: Unexpected token: operator (>)
Details:
fileName: /var/www/gulp/public/application.js
lineNumber: 3没有uglify插件,一切都很好。结果是
console.log('hello!');
var lol = 'asd!';
(function() {
var test;
test = function() {
return "lol";
};
}).call(this);uglify插件可能试图压缩.js.coffee文件,但我不知道具体原因。我怎么才能修好它?
发布于 2015-02-27 16:33:23
Uglify失败是因为它遇到了coffeescript。这表明coffeeScriptFilesFilter没有捕获所有的*.coffee.js文件。
给定文件foo.js.coffee和subdir/foo.js.cof:
// this matches only foo.js.coffee
gulpFilter('*.js.coffee');
// this matches both
gulpFilter('**/*.js.coffee');https://github.com/sindresorhus/gulp-filter#pattern
接受具有全局模式的字符串/数组,这些模式通过多层程序运行。
https://stackoverflow.com/questions/28768217
复制相似问题