前端工具-gulp-ruby-sass-解决带有中文路径报错(incompatible character encodings GBK and UTF-8)...

注意:错误提示真的是非常重要的!!!

今天 gulp 一个外国人的项目时编译 sass 时提示

Encoding::CompatibilityError: incompatible character encodings: GBK and UTF-8
  Use --trace for backtrace.

结果还一直能编译出来,改了 sass 编译出来的东西还和原来一样,也是醉了(估计是什么时候给缓存了)。原本都写明白了使用--trace回溯,但我还是想着查查看看有人解决没,经过一番波折,还是用命令行加上--trace但用命令行根本不会报错,又经过一番波折在使用 gulp-ruby-sass 时配置--trace找到了错误的地方改掉了。(还不知道为啥命令行为什么很 ojrk)

我的解决步骤如下

一:gulp-ruby-sass 配置--trace定位错误

  • sass(source, [options])
    在 options 里配置{trace: true}

    const gulp = require('gulp');
    const sass = require('gulp-ruby-sass');

    gulp.task('sass', () =>
    sass('source/file.scss', {trace: true})
    .on('error', sass.logError)
    .pipe(gulp.dest('result'))
    );

找到错误信息

注意 sass 版本!!!

 C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sass-3.5.5/lib/sass/importers/filesystem.rb:87:in `index': incompatible character encodings: GBK and UTF-8 (Encoding::CompatibilityError)
    from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sass-3.5.5/lib/sass/importers/filesystem.rb:87:in `remove_root'

排除错误(将 gbk 转为 utf-8 编码)

http://ruby-doc.org/core-2.5.1/String.html#method-i-encode

  • encode(dst_encoding, src_encoding [, options] ) → str
    (目标编码,原编码,[选项])

87 行改为:if name.encode("utf-8", "gbk").index(@root + "/") == 0

参考:https://www.cnblogs.com/xmzxy1986/p/7506919.html

转载于:https://www.cnblogs.com/jffun-blog/p/9402142.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值