【问题标题】:Invalid US-ASCII character using SASS使用 SASS 的 US-ASCII 字符无效
【发布时间】:2020-04-08 20:31:09
【问题描述】:

我正在使用 grunt、grunt-contrib-sass 和 angular 材料。添加角度材料后,构建开始在 CI 过程(BitBucket Pipelines)中失败。错误是:

Invalid US-ASCII character "\xE2" online 4242 of bower_components/angular-material/angular-material.scss

我读到的关于解决这个问题的所有内容都涉及在 SASS 文件的顶部设置编码,但由于它是在构建过程中通过 bower 安装的,所以这不合理。我确实尝试将它添加到我的主要 scss 文件的顶部,其中导入了角度材料,但这不起作用。

我使用的是 PC,它在本地运行良好。我正在为 CI 使用 docker 映像 starefossen/ruby-node:latest,这是它失败的地方。这是管道中的构建脚本:

npm install npm install -g bower bower install --allow-root npm install -g grunt-cli gem install sass grunt test grunt build

这将安装 sass 3.4.22。

【问题讨论】:

    标签: angularjs docker gruntjs angular-material grunt-contrib-sass


    【解决方案1】:

    您使用的是 Mac 吗?你使用的是什么版本的 Sass?

    也找到了这个,可能会有所帮助:

    Just add this line to top of config.rb
    Encoding.default_external = "utf-8"
    

    【讨论】:

    • 也许我错了,但据我所知,config.rb 是特定于指南针的。我在上面的编辑中回答了您的其余问题。
    • 就像@rrd 所说...我遇到了同样的字符集问题。特别是在 OSX 上,ruby 编码设置似乎存在问题。我修复了它,在主项目目录中创建了一个 config.rb 文件,以明确告诉 ruby​​ 它应该使用哪种字符集编码。由于 sass 和 compass 依赖于 ruby​​,这很有可能会解决您的问题。 Encoding.default_external = 'utf-8'
    • 我们在哪里可以找到“config.rb”或者我们应该在哪里创建“config.rb”?
    【解决方案2】:

    以一种或另一种方式更改文件编码可能会起作用。

    您还可以检查您的 material.scss(它看起来像在第 4242 行)或您添加的代码并替换可疑字符..

    \xe2 通常是一个类似 , 或 - 但与键盘输入的 ascii 不同的字符。如果您从网络复制粘贴,这些通常会输入您的代码。

    在您新添加的代码中,用键盘输入的字符替换非字母字符,它应该可以工作。

    【讨论】:

    • 我无法编辑代码。代码在一个库中,直到开始构建才被导入。更改文件编码对我来说很好,但我不知道如何在不编辑库的情况下完成此操作(我不能这样做)。
    【解决方案3】:

    作为 rrd wrote:

    您使用的是 Mac 吗?你使用的是什么版本的 Sass?

    也找到了这个,可能会有所帮助:

    只需将此行添加到 config.rb 的顶部 Encoding.default_external = "utf-8"

    我遇到了同样的字符集问题。

    尤其是在 OSX 上,ruby 编码设置似乎存在问题。

    我修复了它,在主项目目录中创建了一个 config.rb 文件,以明确告诉 ruby​​ 它应该使用哪种字符集编码。 由于 sass 和 compass 依赖于 ruby​​,这很有可能会解决您的问题。

    Encoding.default_external = 'utf-8'
    

    【讨论】:

    • 您能否详细解释一下您在何处添加了“config.rb”文件?从您运行 SASS 的位置或安装 SASS 的位置? @mrmoree
    • @arjunbnair 正如我所写,我在项目根目录中添加了 config.rb 文件。不能安静地记住我从哪里运行 ruby​​,但尝试从项目根目录运行它。正如 rails 文档 (guides.rubyonrails.org/configuring.html#config-encoding) 所述,字符集默认为 utf-8。
    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 2018-06-30
    • 1970-01-01
    相关资源
    最近更新 更多