看看gulp-useref。它有一个很好的例子:
var gulp = require('gulp'),
useref = require('gulp-useref'),
gulpif = require('gulp-if'),
uglify = require('gulp-uglify'),
minifyCss = require('gulp-clean-css');
gulp.task('html', function () {
// I made a small change to gulp.src below
return gulp.src('./app/*.html')
.pipe(useref())
.pipe(gulpif('*.js', uglify()))
.pipe(gulpif('*.css', minifyCss()))
.pipe(gulp.dest('dist'));
});
[编辑:添加您的 html]
<html class="h-100">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Login</title>
<link rel="stylesheet" href="../src/vendors/clarity-ui/css/clarity-ui.min.css">
<!-- build:css dist/css/main.css -->
<link rel="stylesheet" href="../src/scss/main.css">
<!-- endbuild -->
<!-- build:js ../dist/js/myJS.js -->
<script src="../src/js/myJS.js"></script>
<!-- endbuild -->
</head>
我假设您不想更改已经缩小的供应商 css。所以没有必要在它周围放置一个指令。
并且 useref 不会连接供应商 css,因为它不会抓取该资产,因为它们没有围绕它的构建指令。
你可以对你的 js 文件做类似的事情。
[编辑:添加 文件夹 结构。]
-[your working directory]
---[app]
-----test.html
---[src]
------[scss]
--------main.css
------[js]
--------myJS.js
-gulpfile.js
所以 gulpfile.js 位于 app 和 src 文件夹上方的基本工作目录中。
从您的工作目录运行 gulp html 将创建一个“dist”文件夹,其中包含您的缩小 css 和 uglified js 以及您修改后的 main.html。
我已经在具有这种文件夹结构的测试系统上运行了它,它运行良好。如果您仍有问题,请告诉我。