gulp - 关于具有多个 html 文件的重复内容的 gulp-useref 问题
问题描述
当我使用许多 html 文件配置 useref (gulp v3) 时,例如:
我首先创建一个 html 页面,然后创建第二个并运行 gulp 任务
页面 html01.html
<!-- build:js js/combined.min.js -->
<script src="../../assets/script01.js"></script>
<script src="../../assets/script02.js"></script>
<!-- endbuild -->
页面 html02.html
<!-- build:js js/combined.min.js -->
<script src="../../assets/script01.js"></script>
<script src="../../assets/script02.js"></script>
<!-- endbuild -->
在这里,我们在许多 html 页面上都有相同的脚本
gulp.task('UpdateCombineCssJs', function() {
return gulp.src('html/*.html')
.pipe(useref())
.pipe(gulpif('*.js', uglify()))
.pipe(gulpif('*.css', cssnano()))
.pipe(gulp.dest('dist'));
});
如果我们只用 html01.html 运行任务,然后用 html02.html combine.min.js 文件大小,它的内容是两倍。
如果我添加一个具有相同参考、大小和三重内容的 html03.html
我怎样才能避免重复内容,因为目标是优化这个文件:combine.min.js?有什么特殊设置吗?
解决方案
如果您将gulp-changed
set 添加到目标目录,那应该会阻止文件被覆盖或添加到其中。
const changed = require('gulp-changed');
gulp.task('UpdateCombineCssJs', function() {
return gulp.src('html/*.html')
.pipe(useref())
.pipe(gulpif('*.js', uglify()))
.pipe(gulpif('*.css', cssnano()))
.pipe(changed('dist'))
.pipe(gulp.dest('dist'));
});
推荐阅读
- c++ - 父类的虚函数无法工作
- tensorflow - 在 Tensorflow 的计算图中创建一个新的随机操作
- c - 打印字符串指针导致 C 中的输出损坏
- excel - 在 excel 中使用 CONCATENATE 后,如何在一个单元格中为不同的行使用 2 种不同的字体?
- c++ - C++基类指针调用子虚函数,为什么基类指针可以看到子类成员
- java - 有关使用 Java 与 Apache Derby 连接的协议
- python - 对 Python 的 SQL 查询,使用 Pandas
- django - Django 自定义用户模型错误 ((admin.E108) 'list_display[2]' 的值指的是 'first_name',它不是可调用的
- android - 在服务中使用 SMS 在 Android 中排队
- .net-core - 如何将 MediatR 与我的业务层分离