下面是 js 缩小任务:
gulp.task('jsBuildDev', function () {
return gulp.src(['js/build/*.js'])
.pipe(concat('build.js'))
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(hash())
.pipe(uglify())
.pipe(rename(function (path) { path.basename += "-min" }))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('./js/'))
});
下面是 sass 缩小任务:
gulp.task('sass', function () {
return gulp
.src('./scss/style.scss')
.pipe(hash())
.pipe(sourcemaps.init())
.pipe(sass(sassOptions).on('error', sass.logError))
.pipe(sourcemaps.write('./'))
.pipe(autoprefixer(autoprefixerOptions))
.pipe(rename(function (path) { path.basename += "-min" }))
.pipe(gulp.dest('./css/'));
});
这是一个替换所需 html 的任务:
gulp.task('htmlreplace', function () {
gulp.src('pre-built-index.html')
.pipe(htmlreplace({
'css': 'styles.min.css',
'js': 'js/build.min.js'
}))
.pipe(rename('index.html'))
.pipe(gulp.dest('./'));
});
所有三个任务都可以正常工作,但是,我如何将它们合并htmlreplace
到jsBuildDev
任务中;以便'js': 'js/build.min.js'
等于在 js 缩小任务中找到的散列名称?所以它看起来像'js': 'js/build-86fb603a0875705077f6491fee6b5e07-min'
而不是'js': 'js/build.min.js'
.
这同样适用于 sass 任务,但我假设两者都可以使用相同的解决方案来解决。