【发布时间】:2016-10-06 12:19:09
【问题描述】:
gulp-inject 不适用于事件流。
var gulp = require('gulp');
var mainBowerFiles = require('main-bower-files');
var inject = require('gulp-inject');
var es = require('event-stream');
var config = {
sassDir: './resources/assets/sass',
jsPath: './resources/app',
fontDir: './resources/fonts',
imageDir: './resources/images',
bowerDir: './bower_components'
};
gulp.task('index', function () {
return gulp.src('./resources/index.html')
.pipe(inject(gulp.src(mainBowerFiles('**/*.js'), {read: false}), {name: 'bower'}))
.pipe(inject(es.merge(gulp.src(config.jsPath + '/**/*.js', {read: false}))))
.pipe(gulp.dest('./public'));
});
结果是这样的。
<!-- inject:js -->
<script src="/resources/app/core.js"></script>
<script src="/resources/app/first-folder/01.js"></script>
<script src="/resources/app/second-folder/02.js"></script>
<!-- endinject -->
不幸的是mainBowerFiles('**/*.js') 没有与inject(es.merge(gulp.src(config.jsPath + '/**/*.js', {read: false}))) 合并
【问题讨论】:
-
不清楚你真正想要发生什么。您的 HTML 之前是什么样的,之后您希望它是什么样的?
-
当您似乎没有
<!-- bower:js -->部分时,为什么还要使用{name:'bower'}? -
@SvenSchoenung 即使删除
{name:'bower'},结果也是一样的。请看问题中附上的截图 -
@SvenSchoenung HTML 之前看起来像这样
<!-- inject:js --> <!-- endinject --> -
您没有正确遵循。该示例显然在
<!-- inject:js -->部分之前有一个<!-- bower:js -->部分。
标签: javascript gulp bower gulp-inject event-stream