0

デフォルトのsassおよびscss-lintリンターでscssファイルをlintするように構成されたSyntastic構文チェックプラグインでVimを使用しています。
Jekyll プロジェクトで css/main.scss を開くと、scss-lint が次のエラーを返します。
css/main.scss:5:1 [E] Syntax Error: Invalid CSS after "@charset "utf-8"": expected "{", was ";"

charset 宣言を削除すると、次の行で同じエラーが発生し、以降も同様です...
Front Matter ブロックを削除すると、scss-lint はエラーを報告しなくなりますが、Jekyll では、sass の先頭に空の Front Matter ブロックが必要です。ファイルを処理してパーシャルをインポートし、css を出力します。

Front Matter ブロックを無視するように scss-lint を設定するにはどうすればよいですか?

4

1 に答える 1

0

以下を含む .scss-lint.yml 構成ファイルをユーザー ディレクトリに追加します。

preprocess_command: "sed '1{/^---$/{:a N;/---$/!ba;d}}'"

scss-lint gem は、最初に現在の作業ディレクトリで構成ファイルを探し、次にユーザー ディレクトリで構成ファイルを探します。

最初に sed コマンドを使用して scss ファイルのpreprocess_commandテキストを実行するように scss-lint に指示します。

sed コマンドは Front Matter ブロックを取り除きます。次に、ファイルはエラー チェックのために scss-lint に渡され、最初の行で @charset 宣言が行われます。
最初の行から始まる3 つのダッシュの間に Front Matter ブロックがない場合---、ファイルは sed から scss-lint にそのまま渡されます。

于 2016-11-02T22:43:59.813 に答える