0

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を介してインストールされるため、それはもっともらしい. Angular マテリアルがインポートされるメインの scss ファイルの先頭にこれを追加しようとしましたが、うまくいきませんでした。

私はPCを使用していますが、ローカルでは正常に動作します。starefossen/ruby-node:latestCIにdockerイメージを使用していますが、失敗します。パイプラインのビルド スクリプトは次のとおりです。

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 がインストールされます。

4

3 に答える 3

0

ファイルのエンコーディングを何らかの方法で変更すると、問題が解決する可能性があります。

また、material.scss (4242 行目) または追加したコードを確認して、疑わしい文字を置き換えることもできます。

\xe2 は通常 , または - のような文字ですが、キーボードから入力された ascii とは異なります。多くの場合、Web からコピーして貼り付けると、これらがコードに入ります。

新しく追加されたコードで、文字以外の文字をキーボードで入力した文字に置き換えると、機能するはずです。

于 2017-04-26T14:28:00.117 に答える
0

rrdが書いたように:

Macをお使いですか?使用している Sass のバージョンは何ですか?

これも見つかりました、役立つかもしれません:

この行を config.rb Encoding.default_external = "utf-8" の先頭に追加するだけです

同じ文字セットの問題に遭遇しました。

特に OSX では、Ruby のエンコード設定に問題があるようです。

メイン プロジェクト ディレクトリに config.rb ファイルを作成して修正し、使用する文字セット エンコーディングを Ruby に明示的に伝えました。sass と compass は ruby​​ に依存しているため、これで問題が解決する可能性が高くなります。

Encoding.default_external = 'utf-8'
于 2020-04-08T12:31:09.693 に答える