Как я могу вставить содержимое файла в мой index.html с помощью gulp-inject?

Вот что я пробовал до сих пор:

gulp.task('watch-index-html', function () {
    gulp.watch(files, function (file) {
        return gulp.src('index/index.html')
            .pipe(inject(gulp.src(['index/base3.html']), {
                starttag: '<!-- inject:base3:html -->'
            }))
            .pipe(print(function (file) {
                return "Processing " + file;
             }))
            .pipe(gulp.dest('./'));
    });
});

Вот что случилось:

До:

<body>
    abcd
    <!-- inject:base3:html -->
    <!-- endinject -->
    efgh

После:

<body>
    abcd
<!-- inject:base3:html -->
<link rel="import" href="/index/base3.html">
<!-- endinject -->
    efgh

Я ожидал увидеть фактическое содержимое файла, а не строку:

<link rel="import" href="/index/base3.html">

Может кто-нибудь сказать мне, если я могу сделать это "вставка содержимого файла" с gulp-inject или если есть что-то еще, я должен использовать. Обратите внимание, в прошлом я пытался использовать gulp-mustache но у меня были проблемы, когда казалось, что вставить символ (65279). Я предполагаю, что это было связано со следующим вопросом, но я так и не смог заставить ус у меня работать:

Как избежать повторения символа 65279 в php? (Этот вопрос также относится к Javascript xmlhttp.responseText (ajax))

Я надеюсь, что кто-то может дать мне несколько советов либо с gulp-inject или с gulp-mustache или любой другой способ вставить содержимое файла в другой файл.

1 ответ

Решение

Используйте пользовательскую функцию преобразования для вставки содержимого файла:

gulp.task('watch-index-html', function () {
  gulp.watch(files, function (file) {
    return gulp.src('index/index.html')
      .pipe(inject(gulp.src(['index/base3.html']), {
         starttag: '<!-- inject:base3:html -->',
         transform: function(filepath, file) {
           return file.contents.toString();
         }
      }))
      .pipe(print(function (file) {
        return "Processing " + file;
      }))
     .pipe(gulp.dest('./'));
  });
});
Другие вопросы по тегам