我正在使用咕unt,grunt-contrib-sass和Angular材料。添加角材料后,构建开始在CI过程(Bitbucket管道(中失败。错误是:
Invalid US-ASCII character "xE2" online 4242 of bower_components/angular-material/angular-material.scss
我阅读的有关解决此问题的所有内容都涉及将编码设置在SASS文件的顶部,但是由于它是在构建过程中通过Bower安装的,因此这是不合理的。我确实尝试将其添加到我的主SCSS文件的顶部,但这不起作用。
我正在使用PC,在本地工作正常。我正在为CI使用Docker Image 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。
您是否正在使用Mac?您正在使用什么版本的SASS?
也发现了这一点,可能会有所帮助:
Just add this line to top of config.rb
Encoding.default_external = "utf-8"
以一种或另一种方式更改文件编码可以工作。
您也可以检查您的材料。Scss(在第4242行上看起来像(或您添加的代码并替换可疑字符。
xe2通常是类似于或 - 但与键盘输入的ASCII相同的字符。通常,如果您从网络复制 -
,这些都会输入您的代码。在您新添加的代码中,用键盘键入的代码替换了非字母字符。
rrd写道:
您正在使用Mac吗?您正在使用什么版本的SASS?
也发现了这一点,可能会有所帮助:
只需将此行添加到config.rb的顶部encoding.default_external =&quort; utf-8
我遇到了相同的字符集问题。
特别是在OSX上,Ruby编码设置的接缝是一个问题。
我修复了它在主项目目录中创建一个config.rb文件,以明确地告诉Ruby应该使用哪种CHAR集。由于Sass和Compass取决于Ruby,因此很可能会解决您的问题。
Encoding.default_external = 'utf-8'