gulp-useref生成的文件能不能在后面加上版本号?

假如html结构像下面这样:

<html>
<head>
    <!-- build:css css/combined.css -->
    <link href="css/one.css" rel="stylesheet">
    <link href="css/two.css" rel="stylesheet">
    <!-- endbuild -->
</head>
<body>
    <!-- build:js scripts/combined.js -->
    <script type="text/javascript" src="scripts/one.js"></script>
    <script type="text/javascript" src="scripts/two.js"></script>
    <!-- endbuild -->
</body>
</html>

然后,build之后,我想要其加上版本号,应该怎么做?现在build之后是不带后面的?v=20150829

<html>
<head>
    <link rel="stylesheet" href="css/combined.css?v=20150829"/>
</head>
<body>
    <script src="scripts/combined.js?v=20150829"></script>
</body>
</html>

哪个gulp的插件可以做到?

阅读 7.4k
3 个回答

用 gulp-rev-replace 插件,用法如下

var gulp =require('gulp'),
useref = require('gulp-useref'),
uglify = require('gulp-uglify'),
cleancss = require('gulp-clean-css'),
rev = require('gulp-rev'),
revReplace = require('gulp-rev-replace'),
gulpif = require('gulp-if');

gulp.task('pack', function () {
    return gulp.src('./src/**/*.html')
        .pipe(useref())             //pack the file in index.html with build comment
        .pipe(gulpif('*.js', uglify()))       // minify js
        .pipe(gulpif('*.js', rev()))          // append hash to the packed js file
        .pipe(gulpif('*.css', cleancss()))    // minify css
        .pipe(gulpif('*.css', rev()))         // append hash to the packed js file
        // substitute the useref filename with the hash filename in index.html
        .pipe(revReplace())
        .pipe(gulp.dest('dist'));
};   
    

不需要用两次gulp-rev-replace,只需要在gulp-rev之后用一次就可以

可以用下我这个插件gulp-asset-rev,专门处理静态资源版本号的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题