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()); 
});