让我们考虑一下gulpfile.js
:
var elixir = require('laravel-elixir');
elixir(function(mix) {
mix.coffee(['1.coffee', '2.coffee'], 'storage/app')
.browserify('app.js', null, 'storage/app')
});
现在我想添加some shims here。据我所知,他们没有回报什么,他们改变了环境。这让我觉得它们必须在任何其他代码之前运行。
我可以将require('es5-shim'); require('es6-shim'); require('es7-shim');
放入第一个文件的开头。但我不喜欢这个想法,因为我最终可能会改变订单,它会停止工作。而且我不确定,如果他们保证按照我指定的顺序进入。
那么,我如何预先添加文件?或者你们如何处理它?</ p>
答案 0 :(得分:0)
我想出了什么:
var elixir = require('laravel-elixir')
gulp = require('gulp'),
concat = require('gulp-concat')
fs = require('fs');
elixir.extend('inlineTask', function(func, watcher) {
var task = new elixir.Task(func.name, func);
if (watcher) {
task.watch(watcher);
}
});
elixir(function(mix) {
mix.coffee('**/*.coffee', 'storage/app/app.js')
.browserify('app.js', 'storage/app/bundle.js', 'storage/app')
.inlineTask(function bundleJs() {
return gulp.src([
'node_modules/es5-shim/es5-shim.js',
'storage/app/bundle.js'])
.pipe(elixir.Plugins.if(elixir.config.sourcemaps, elixir.Plugins.sourcemaps.init({loadMaps: true})))
.pipe(concat('bundle.js'))
.pipe(elixir.Plugins.if(elixir.config.sourcemaps, elixir.Plugins.sourcemaps.write('.')))
.pipe(gulp.dest('public/js'));
}, 'storage/app/bundle.js')
.version('js/bundle.js');
});
但请注意,在gulpfile.js
运行gulp watch
时,任务在gulp
中指定的顺序为not run。所以在此之前只运行gulp
。
另外,laravel-elixir
(或者我应该说gulp
)doesn't always detect个新文件。据推测,当源文件模式与任何文件都不匹配时,运行git pull
。