Vin*_*aes 6 javascript dependency-injection gulp gulp-inject
我正在尝试在索引中注入一些文件,所有文件都连接在一起并缩小为.tmp文件夹,如下所示:
gulp.task('prep-js',['clean'], function(){
var jspath = './src/page/**/*.js';
var treatJs = gulp.src(jspath)
.pipe(plugins.concat('scripts.js'))
.pipe(plugins.uglify())
.pipe(gulp.dest('.tmp/page/js'))
});
Run Code Online (Sandbox Code Playgroud)
但是当我运行注入任务时,它说"没有注入index.html".这是代码:
gulp.task('inject-deps', ['prep-css', 'prep-js'], function(){
//select main bower files
var bowerDep = gulp.src(plugins.mainBowerFiles(), {read: false});
//inject files
return gulp.src('./src/page/index.html')
.pipe(plugins.inject(bowerDep, {relative: true, name:'bower'}))
.pipe(plugins.inject(gulp.src('.tmp/page/js/*.js'), {name:'frontjs'}))
.pipe(plugins.inject(gulp.src('.tmp/page/css/*.css'), {name:'frontcss'}))
.pipe(gulp.dest('.tmp/page'));
});
Run Code Online (Sandbox Code Playgroud)
有趣的是,注入主要凉亭文件的第一个管道工作完美,但它不会发生在以下两个.
另外,仅仅是为了获取信息,'plugins'是一个需要我的插件的变量.
对这个问题有什么看法吗?
您需要在任务中返回流prep-js
:
gulp.task('prep-js',['clean'], function(){
var jspath = './src/page/**/*.js';
return gulp.src(jspath)
.pipe(plugins.concat('scripts.js'))
.pipe(plugins.uglify())
.pipe(gulp.dest('.tmp/page/js'))
});
Run Code Online (Sandbox Code Playgroud)
否则inject-deps
将不会等待prep-js
完成才运行,这意味着连接和丑化的 JS 文件还不会进入.tmp/page/js
。
Gulp 文档的相关部分:
注意:默认情况下,任务以最大并发度运行——例如,它会立即启动所有任务并且不等待任何内容。如果您想创建一个系列,其中任务按特定顺序运行,您需要做两件事:
- 给它一个提示,告诉它任务何时完成,
- 并暗示一项任务取决于另一项任务的完成。
归档时间: |
|
查看次数: |
2811 次 |
最近记录: |