【问题标题】:gulp-inject. Do not want to include build folder in output吞咽注入。不想在输出中包含构建文件夹
【发布时间】:2016-06-01 22:55:03
【问题描述】:

我有以下文件夹结构

_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 任务。 p.s.我正在使用别名为 $

的 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 上的文档的解释,使用相对选项它不应在输出中包含 /_build/。然而,它并没有被排除在外。

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

【问题讨论】:

    标签: gulp gulp-inject


    【解决方案1】:

    您告诉 inject 使用文件的相对路径。但相对于什么?嗯,相对于你的注射来源。

    如果您的来源是:

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

    【讨论】:

      猜你喜欢
      • 2017-01-26
      • 1970-01-01
      • 2022-12-10
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      相关资源
      最近更新 更多