gulp-rev 编译问题-mac,window,操作系统下

发布于 2022-09-04 18:01:27 字数 780 浏览 17 评论 0

1.做项目现在遇见个问题就是 现在 我再mac下运行 gulp-rev OK没有问题,正常来说如果文件没有修改 在mac 下我运行gulp-rev 完之后在运行 一下 文件md5的值 是没有变化的,但是 如果换成 windows 操作系统,把项目 拉下来不用文件 不做 任何修改的话,运行gulp-rev ,竟然 又从新编译了把文件名字,但是 在mac 下面 就不会。 这样很不好。
请问 这是 为什么那。
mac 下

clipboard.png

var gulp  = require('gulp');
var rev  = require('gulp-rev');
gulp.task('default',function () {
     return gulp.src('src/*.js')
        .pipe(rev())
        .pipe(gulp.dest('dist'));
    });

运行完 不修改文件情况下是 没有变化的 。
但是 如果 在mac 下编译完。然后在 windows 里面把想从git 拉下来 的然后在运行竟然又从新编译了。
如果在换个mac本就不存在这个现象,请问各位大神 谁知道为什么 gulp-rev为什么在不同的操作系统在不修改文件的情况下。在一个mac系统编译完。然后在windows系统下还要编译一遍那。求解~!~!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

请你别敷衍 2022-09-11 18:01:27

问题的根本在windows和mac平台的换行符不一致,windows换行是\r\n,而mac是\n。导致源的二进制不同所以生成的MD5肯定也不同。

建议打包时,在.pipe(rev())之前先引用gulp-replace批量替换换行符

var replace = require('gulp-replace');
    gulp.task('default',function () {
     return gulp.src('src/*.js')
        .pipe(replace(/\r\n/g, '\n'))//替换回车换行符
        .pipe(rev())
        .pipe(gulp.dest('dist'));
    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文