大家好,希望您度过愉快的一天,我正在尝试找到一种方法来在同一路径或 gulp.dest()< 中创建
gulp(gulp-uglify 和 gulp-rename)。在下面的代码中,当我运行 gulp 时,它会继续创建 min
文件*.min.js
、 *.min.min.js
、 *.min.min 。 min.js
等等,除非我停止终端。如何让我的 gulp 在 uglify 的同时只创建一个 *.min.js
。我希望大家能帮助我解决这个问题。谢谢。
const gulp = require('gulp');
const browserSync = require('browser-sync').create();
const rename = require('gulp-rename');
const uglify = require('gulp-uglify');
gulp.task('scripts', function() {
return gulp.src('./src/js/*.js')
.pipe(uglify())
.pipe(rename( {suffix: '.min'} ))
.pipe(gulp.dest('./src/js/'))
.pipe(browserSync.stream());
});
gulp.task('browserSync', function(){
browserSync.init({
server : {
baseDir : './'
}
});
gulp.watch('./src/js/**.js', gulp.series('scripts'));
});
gulp.task('default', gulp.series('scripts', 'browserSync'));
最佳答案
发生这种情况是因为您的 scripts
任务将文件输出到您正在观看的同一目录:
.pipe(gulp.dest('./src/js/'))
和
gulp.watch('./src/js/**.js', gulp.series('scripts'));
因此,每次 scripts
运行并保存到该目录时,它都会再次触发您的 watch
,从而触发 scripts
等。
因此,要么将 .min
保存到您不观看的目录中,要么不观看 .min
文件。
顺便说一句,更改为 gulp.watch('./src/js/*.js', gulp.series('scripts'));
//删除了一个星号
gulp.watch(['./src/js/*.js', '!./src/js/*.min.js'], gulp.series('scripts'));
//
可能有效 - 但未经测试。
关于javascript - 如何在 gulp-rename 和 gulp-uglify 上的相同路径或目标中创建 min 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60136784/