glup.inject {相对的:真正}还创建了一个rootSlash
问题描述:
我用一口任务注入我的JavaScript文件:glup.inject {相对的:真正}还创建了一个rootSlash
gulp.task('index', function() {
var target = gulp.src('./public/index.html');
var sources = gulp.src(config.appjs.concat(config.appcss), {read: false});
return target.pipe(inject(sources),
{
relative: true,
addRootSlash : false
// ignorePath: /[^/]/
// ignorePath: "/(\.\.\/)?\//",
// ignorePath: '/public'
})
.pipe(wiredep({
ignorePath: "^/"
}))
.pipe(gulp.dest('./dev'))
.pipe(browserSync.stream());
});
但我仍然看到,而不是/public
<script src="public/js/config/app.js"></script>
这里:
<!-- inject:js -->
<script src="/public/js/config/app.js"></script>
<script src="/public/js/components/home-component.js"></script>
<script src="/public/js/components/login-component.js"></script>
<script src="/public/js/components/progress-bar-component.js"></script>
我是如何解决这一问题?
答
您错误地传递了选项。现在你将它们传递到pipe()
,但他们需要进入inject()
。应该是这样的:
gulp.task('default', function() {
var target = gulp.src('./public/index.html');
var sources = gulp.src('./public/**/*.js', { read: false });
return target.pipe(inject(sources, { relative: true, addRootSlash: false }))
.pipe(wiredep({
ignorePath: "^/"
}))
.pipe(gulp.dest('./dev'))
.pipe(browserSync.stream());
});