使用SASS的US-ASCII字符无效

时间:2017-04-26 14:01:07

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

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

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

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

我正在使用PC,它在本地工作正常。我正在使用docker镜像starefossen/ruby-node:latest作为CI失败的地方。这是管道中的构建脚本:

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。

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

以某种方式更改文件编码可能会有效。

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

\ xe2通常是一个字符,或者 - 但与键盘输入的ascii不同。如果你从网上复制粘贴,通常会输入你的代码。

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

答案 2 :(得分:0)

{rr {3}}:

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

也发现了这一点,可能会有所帮助:

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

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

特别是在OSX上,红宝石编码设置似乎有问题。

我修复了它在主项目目录中创建config.rb文件的问题,以明确告诉ruby应该使用哪种字符集编码。 由于和指南针依赖于红宝石,因此很有可能解决您的问题。

Encoding.default_external = 'utf-8'