[英]How to use coffescript with uglify in gulp?
我有以下項目結構
assets
--javascripts
----controllers
------somefile.js
------somefile.js.coffee
我想編譯coffescripts文件( *.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
文件,但我完全不知道為什么。 我該如何解決?
Uglify失敗,因為它遇到了coffeescript。 這表明coffeeScriptFilesFilter不能捕獲所有* .coffee.js文件。
給定文件foo.js.coffee和subdir / foo.js.coffee:
// this matches only foo.js.coffee
gulpFilter('*.js.coffee');
// this matches both
gulpFilter('**/*.js.coffee');
https://github.com/sindresorhus/gulp-filter#pattern
接受具有通過多次匹配運行的通配模式的字符串/數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.