2016-08-24 30 views
9

Windowsで使用されている改行(改行)は、改行(CR)、改行(LF)、つまりCRLFですが、LinuxやUnixでは単純改行(LF)を使用します。"linebreak-style"のESLintルールをWindowsやUnixに応じて変更する方法を教えてください。

ルールはビルドサーバー上で完璧に取り組んでいるの下

さて、私の場合、私のビルド・サーバーが使用するには、そのLinuxとUnixのフォーマットをサポートしています。

linebreak-style: ["error", "unix"] 

しかし、私はWindows上で開発をやっていると私はそれぞれのルールを更新する必要がありますgit pull/git push下記のように、

linebreak-style: ["error", "windows"] 

Linux/UnixとWindowsの両方の環境をサポートするために、改行形式のルールを書く方法はありますか?

:私はECMAScript6を使用しています[JS]、WebStormは、[IDE]開発

のためにどれソリューション/提案は非常に高く評価されるだろう。ありがとう!

+0

いつも 'LF'を(JSファイル用に)使用しないのはなぜですか?ブラウザだけでなく、IDEもうまくそれらをサポートしています。 – LazyOne

+0

環境がWindowsの場合、LFのESLintテストは失敗します。 –

+0

私は見る - これを明確にしてくれてありがとう(自分自身JS人ではない) – LazyOne

答えて

13

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"] 
    } 
}; 

使用例:Iを遮断する方法を見つけようとした時間を過ごし

$ 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 
+0

男!あなたは私の時間を節約しました。 –

+0

@RavindraThoratあなたは大歓迎です、私はそれが助けてうれしいです! :) – vitorbal

+4

この回答に基づいて環境を指定するのではなく、プラットフォームの通常の行末を検出するように切り替えました。 '' linebreak-style ':["error"、(require( "os")。EOL = == "\ r \ n"? "windows": "unix")] ' –

12

私のコードのいくつかを元に戻すことでそれを失ってしまった。で.eslintrc.jsあなたはまた、改行の機能を遮断している0に改行スタイルを設定することができますファイル:

module.exports = { 
    extends: 'google', 
    quotes: [2, 'single'], 
    globals: { 
    SwaggerEditor: false 
    }, 
    env: { 
    browser: true 
    }, 
    rules:{ 
    "linebreak-style": 0 
    } 
}; 
1

、WindowsのVisualStudioのコードの.eslintc

{ 
 
    "env": { 
 
    "node": true 
 
    }, 
 
    "rules":{ 
 
    "linebreak-style": 0 
 
    } 
 
}

0

改行スタイルのESLintルールを変更するために必要な設定ファイルの場所は、ローカル設定、プロジェクト設定、グローバル設定のどちらを変更するかによって変わることがあります。グローバルのために下に伝播するためにツリーの上部にあります

私はairbnbスタイルを使用しました。私のグローバル設定はnode_modules/eslint-config-airbnb-base/rules/styleにあります。js:

ファイルの場所がわからない場合は、設定に関するテキストを含むファイルのリストを常に検索できます。Linuxでは、改行設定を含むすべてのファイルを検索して、ESLintがインストールされたフォルダに移動します

grep -r linebreak 
関連する問題