Как я могу вставить содержимое файла в мой 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('./'));
});
});