我有以下文件夹结构
_build
src
|- \images
|- \js
|- \sass
我已经构建了一个gulp进程,以便在完成后我的.build文件夹将包含我已完成的解决方案
即
_build\index.html
_build\images\*.*
_build\js\site.min.js
_build\css\site.css
我的gulp任务是编译我的sass文件,生成的文件正确保存到_build \ css文件夹中
现在在我的index.html文件中,我在head元素
中有以下内容<!-- inject:css -->
<!-- endinject -->
现在我想要的是获得以下注入
<link rel="stylesheet" href="css/site.css">
但是我一直在
中结束<link rel="stylesheet" href="/_build/css/site.css">
这是我完成注射的一项任务。附:我使用别名为$
的gulp-load-pluginsgulp.task('inject', function() {
return gulp
.src('./src/index.html')
.pipe($.inject(gulp.src('./build/css/site.css', {read: false}), {relative: true}))
.pipe(gulp.dest('./_build/'));
});
根据我对阅读https://www.npmjs.com/package/gulp-inject文档的解释,使用相对选项,它不应该在输出中包含/ _build /。然而,它并没有被排除在外。
如何配置gulp-inject以正确排除/ _build / path
答案 0 :(得分:0)
您告诉注入使用文件的相对路径。但相对于什么?那么,相对于你注射的来源。
如果您的来源是:
./build/css/site.css
你正在树中的一个目录上,所以注入位于./
所在的位置。意思是,build/css/site.css
是正确的相对路径。
现在,如果您的来源是:
build/css/site.css
css的相对路径为/css/site.css
。
长话短说。从正确的目录中调用注入:
gulp.task('inject', function() {
return gulp
.src('./src/index.html')
.pipe($.inject(gulp.src('build/css/site.css', {read: false}), {relative: true}))
.pipe(gulp.dest('./_build/'));
});
消除./
修改强>
您可能需要更改并使用cwd(当前工作目录)