如何与laravel和browserfy一起使用es*-垫片
How to use use es*-shims with laravel and browserify?
让我们考虑一下这个gulpfile.js
:
var elixir = require('laravel-elixir');
elixir(function(mix) {
mix.coffee(['1.coffee', '2.coffee'], 'storage/app')
.browserify('app.js', null, 'storage/app')
});
现在我想在这里添加一些垫片。据我所知,他们不会回报什么,他们改变了环境。这让我觉得它们必须在任何其他代码之前运行。
我可以把require('es5-shim'); require('es6-shim'); require('es7-shim');
放在第一个文件的开头。但我不喜欢这个主意,因为我最终可能会改变订单,它就会停止工作。我不确定,他们是否保证按照我指定的顺序来。
那么,我该如何准备文件呢?或者你们是怎么处理的?
我想到了什么:
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');
});
但请注意,在运行gulp watch
时,任务不会按照它们在gulpfile.js
中指定的顺序运行。因此在此之前,只运行gulp
是有意义的。
此外,gulp
(或者应该说laravel-elixir
)并不总是检测到新文件。据推测,当源文件模式与任何文件都不匹配时,当运行gulp
时。
相关文章:
- 需要垫片设置-jquery.flot/jquery.flot.selection
- 转换成ES 5使用babel通过吞咽手表不工作
- RequireJS垫片导出的目的是什么
- 使用不带转发器的es模块
- 如何在ES Next中扩展静态属性
- 限制Backbone.js获取的数据量()'es
- 改进基于es lint的js代码
- es 6代码的解释
- 来自 http://dondedeportes.es/uploader-previewer/ 的图片上传工具:更改输入以
- 在 ES 6 / Harmony 中拆分类定义
- es.merge 不会合并我的流
- 类方法是否可以在 ES 6 或 7 中声明为引用
- ES 6 组合声明持有人
- ES5-垫片的使用和要求
- 导出 ES 类的每个成员
- 如何与laravel和browserfy一起使用es*-垫片
- r.js优化器-构建一个包含一些模块和垫片的全包js
- 如何使用babel为我的js服务模块实现经过身份验证的es 7装饰器
- 如何提供ECMAScript 5(ES 5)-垫片
- ES 6类:Access "this"在另一个范围内