如果没有gulpfile.js就去项目根目录添加 gulpfile.js
var gulp = require('gulp'), runSequence = require('run-sequence'), rev = require('gulp-rev'), revCollector = require('gulp-rev-collector'), del = require('del') var cssSrc = 'dist/css/**/*.css' var jsSrc = 'dist/js/**/*.js' gulp.task('del', function(cb) { return del(['dist/*'], cb) }) gulp.task('copy', function() { return gulp.src(['*', '*/**', `!node_modules/**`, `!gulpVersion/**`, `!gulpfile*`, `!package*`], { nodir: true }).pipe(gulp.dest('dist')) }) gulp.task('revCss', function() { return gulp .src(cssSrc) .pipe(rev()) .pipe(rev.manifest()) .pipe(gulp.dest('gulpVersion/css')) }) gulp.task('revJs', function() { return gulp .src(jsSrc) .pipe(rev()) .pipe(rev.manifest()) .pipe(gulp.dest('gulpVersion/js')) }) gulp.task('revRootHtml', function() { return gulp .src(['gulpVersion/**/*.json', 'dist/*.html']) .pipe(revCollector()) .pipe(gulp.dest('dist')) }) gulp.task('revHtml', function() { return gulp .src(['gulpVersion/**/*.json', 'dist/**/*.html']) .pipe(revCollector()) .pipe(gulp.dest('dist')) }) gulp.task('default', function(done) { runSequence(['del'], ['copy'], ['revCss', 'revJs'], ['revRootHtml', 'revHtml'], done) })(1)更改gulp-rev文件(node_modules—>gulp-rev—>index.js)
将 manifest[originalFile] = revisionedFile; 改为 manifest[originalFile] = originalFile + '?v=' + file.revHash;(2)更改gulp-rev-collector(node_modules—>gulp-rev-collector—>index.js)
将 var cleanReplacement = path.basename(json[key]).replace(new RegExp( opts.revSuffix ), '' ); 改为 var cleanReplacement = path.basename(json[key]).split('?')[0];(3)更改gulp-rev-collector(node_modules—>gulp-rev-collector—>index.js)
将 regexp: new RegExp( prefixDelim + pattern, 'g' ), 改为 regexp: new RegExp( prefixDelim + pattern+'(\\?v=\\w{10})?', 'g' ),(4)更改rev-path文件(node_module—>gulp-rev—>node_module—>rev-path—>index.js)
将 return modifyFilename(pth, (filename, ext) => `${filename}-${hash}${ext}`); 改为 return modifyFilename(pth, (filename, ext) => `${filename}${ext}`);在项目目录下执行 gulp 即可自动为css,js文件生成版本号
参考: https://www.cnblogs.com/yinshiru/p/10248959.html