Gulp Useref Вложенные каталоги
Я новичок Gulp с такой структурой каталогов:
.tmp
│ file001.html
│ file002.html
| ...
│
|───js
| │ file1.js
| │ file2.js
└───css
│ file1.css
│ file2.css
|
└───folder1
│ file011.html
│ file012.html
│
├───subfolder1
│ │ file111.html
│ │ file112.html
│ │ ...
│
└───folder2
│ file021.html
│ file022.html
|
Вот мое задание useref
gulp.task('useref', function() {
return gulp.src('.tmp/**/*.html')
.pipe(useref())
.pipe(gulpIf('*.js', uglify()))
.pipe(gulpIf('*.css', cssnano()))
.pipe(gulp.dest('dist'));
});
А вот и HTML
<!--build:css /css/styles.min.css-->
<link rel="stylesheet" href="/css/file1.css">
<link rel="stylesheet" href="/css/file2.css">
<!--endbuild-->
<!--build:js /js/main.min.js -->
<script src="/js/file1.js"></script>
<script src="/js/file2.js"></script>
<!-- endbuild -->
Я хочу, чтобы useref захватил ресурсы во всех html-файлах в каталоге.tmp, в том числе в подкаталогах, и заново создал структуру каталога в каталоге dist.
Я получаю файлы uglified и minified, как и ожидалось, в корне dist, но я также получаю несколько ошибок, таких как эта:
Ошибка: файл не найден с единичным глобусом: .tmp/folder1/subfolder1/js/file1.js
Файл не найден, потому что, как вы видите, путь неверный (должен быть.tmp/js/file1.js). Также подкаталоги не создаются в dist.
Я пытался понять, почему это происходит, и что я могу сделать, чтобы исправить это, но после нескольких часов попыток я обращаюсь за помощью. Заранее спасибо.
1 ответ
Я нашел плагин, который выполняет то, что мне нужно. https://docs.omniref.com/js/npm/gulp-use-asset/0.1.1 делает то же самое, что и useref, но поддерживает структуру каталогов, когда файлы копируются в dist.