ご存知のとおり、Windowsで使用される改行(改行)は通常、キャリッジリターン(CR)とそれに続くラインフィード(LF)、つまり(CRLF)ですが、LinuxとUnixでは単純なラインフィード(LF)を使用します
さて、私の場合、私のビルドサーバーはLinuxおよびUnix形式をサポートしているため、以下のルールがビルドサーバーで完全に機能しています。
linebreak-style: ["error", "unix"]
しかし、私はWindowsで開発を行っており、各git pull/git Pushのルールを以下のように更新する必要があります、
linebreak-style: ["error", "windows"]
だから、Linux/UnixとWindowsの両方の環境をサポートするための一般的なlinebreak-styleルールを書く方法はありますか?
注:私はECMAScript6 [js]、WebStorm [ide]を開発に使用しています
どんな解決策/提案でも大歓迎です。ありがとう!
Eslint構成ファイルは、構成オブジェクトをエクスポートする通常の.js
ファイル(つまり、JSONではなく、ロジックを備えた完全なJS)にすることができます。
つまり、現在の環境(または考えられるその他のJSロジック)に応じて、linebreak-style
ルールの構成を変更できることを意味します。
たとえば、ノード環境が「prod」のときに異なるlinebreak-style
構成を使用するには:
module.exports = {
"root": true,
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 6
},
"rules": {
// windows linebreaks when not in production environment
"linebreak-style": ["error", process.env.NODE_ENV === 'prod' ? "unix" : "windows"]
}
};
使用例:
$ NODE_ENV=prod node_modules/.bin/eslint src/test.js
src/test.js
1:25 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
2:30 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
3:36 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
4:26 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
5:17 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
6:50 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
7:62 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
8:21 error Expected linebreaks to be 'CRLF' but found 'LF' linebreak-style
✖ 8 problems (8 errors, 0 warnings)
$ NODE_ENV=dev node_modules/.bin/eslint src/test.js
$ # no errors
リンクブレイクスタイルをシャットダウンする方法を見つけるために時間を費やしましたが、コードの一部を元に戻したために失われました。
の中に .eslintrc
ファイルも設定できますlinebreak-style
から0
これは linebreak 機能をシャットオフします:
module.exports = {
extends: 'google',
quotes: [2, 'single'],
globals: {
SwaggerEditor: false
},
env: {
browser: true
},
rules:{
"linebreak-style": 0 // <----------
}
};
WindowsでVs Codeを使用している場合は、「。eslintrc.json」ファイル(またはESLintのセットアップ時に選択したオプションに応じて「.js」)に移動します。このファイルは通常、プロジェクトのルートフォルダーにあります。ルールの下で、次のようにWindows CRLFを使用するためにlinebreakオプションを追加します。
"rules": {
"linebreak-style": ["error", "windows"]
}
ファイルを保存し、JavaScriptファイルに戻ると、これらの厄介な赤い線はすべて消えます。
Windows VisualStudioコードの.eslintc
{
"env": {
"node": true
},
"rules":{
"linebreak-style": 0
}
}
Linebreak-styleのESLintルールを変更するために必要な設定ファイルの場所は、ローカル設定、プロジェクト設定、またはグローバル設定を変更するかどうかによって変わる場合があります。グローバルに伝播するツリー
Airbnbスタイルを使用し、グローバル設定は次の場所にありました:node_modules/eslint-config-airbnb-base/rules/style.js:
ファイルの場所が不明な場合は、設定に関連するテキストを含むファイルのリストをいつでも検索できます。Linuxでは、ESLintがインストールされているフォルダーに移動して、改行設定のあるすべてのファイルを見つけます。
grep -r linebreak
あなたの.eslintrc.js
:
"rules": {
"linebreak-style": ["error", (process.platform === "win32" ? "windows" : "unix")], // https://stackoverflow.com/q/39114446/2771889
}