0

私は次のようなディレクトリ構造を持つ 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
    |

これが私のユーザーリファレンスタスクです

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 -->

私がやりたいことは、.tmp ディレクトリ内のすべての html ファイル (サブディレクトリ内のものを含む) 内のアセットを userref に取得させ、dist ディレクトリ内にディレクトリ構造を再作成させることです。

distルートで期待どおりに醜いファイルと縮小されたファイルを取得しますが、次のような複数のエラーも取得します。

エラー: 単一のグロブでファイルが見つかりません: .tmp/folder1/subfolder1/js/file1.js

ご覧のとおり、パスが間違っているため、ファイルが見つかりません (.tmp/js/file1.js のはずです)。また、サブディレクトリは dist に作成されません。

なぜこれが起こっているのか、そしてそれを修正するために何ができるのかを理解しようとしましたが、何時間も試した後、ここに助けを求めています. 前もって感謝します。

4

1 に答える 1

0

必要なことを実現するプラグインを見つけました。https://docs.omniref.com/js/npm/gulp-use-asset/0.1.1は userref と同じことを行いますが、ファイルが dist にコピーされるときにディレクトリ構造を維持します。

于 2016-06-29T13:09:54.387 に答える