0

我有以下文件夹结构

_build
src
|- \images
|- \js
|- \sass

我已经建立了一个 gulp 过程,以便完成后我的 .build 文件夹将包含我完成的解决方案

IE

_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 任务。ps 我正在使用别名为 $ 的 gulp-load-plugins

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/'));
});

根据我对阅读https://www.npmjs.com/package/gulp-inject上的文档的解释,使用 relative 选项它不应在输出中包含 /_build/ 。然而,它并没有被排除在外。

如何配置 gulp-inject 以正确排除 /_build/ 路径

4

1 回答 1

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(当前工作目录)

于 2016-06-01T14:55:03.303 回答