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, но я также получаю несколько ошибок, таких как это:

Ошибка: не найден файл с единственным значением glob: .tmp/folder1/subfolder1/js/file1.js

Файл не найден, потому что, как видите, указан неверный путь (должен быть .tmp/js/file1.js). Кроме того, подкаталоги не создаются в dist.

Я пытался понять, почему это происходит и что я могу сделать, чтобы это исправить, но после нескольких часов попыток я обращаюсь сюда за помощью. Заранее спасибо.


person mzo    schedule 28.06.2016    source источник


Ответы (1)


Я нашел плагин, который выполняет то, что мне нужно. https://docs.omniref.com/js/npm/gulp-use-asset/0.1.1 делает то же самое, что и useref, но сохраняет структуру каталогов, когда файлы копируются в dist.

person mzo    schedule 29.06.2016