web-dev-qa-db-ja.com

eslintは、devDependenciesではなく、プロジェクトの依存関係にリストする必要があります

dependencies vs. devDependenciesがノード100%でまだわからないか、eslintがここで間違っています(これを正しく分析できません)。

   3:1   error  'chai' should be listed in the project's dependencies, not devDependencies              import/no-extraneous-dependencies
   4:1   error  'chai-enzyme' should be listed in the project's dependencies, not devDependencies       import/no-extraneous-dependencies
   5:1   error  'enzyme' should be listed in the project's dependencies, not devDependencies            import/no-extraneous-dependencies
   7:1   error  'sinon' should be listed in the project's dependencies, not devDependencies             import/no-extraneous-dependencies
   9:1   error  'redux-mock-store' should be listed in the project's dependencies, not devDependencies  import/no-extraneous-dependencies

これらはテストの依存関係なので、なぜdependenciesにリストする必要があると言っているのですか?

追記事項:CIとしてTravisを使用しているので、それがまったく違いをもたらすかどうかはわかりません。

31
PositiveGuy

これを.eslintrcに追加して解決しました:

"import/no-extraneous-dependencies": ["error", {"devDependencies": true}]

[no-extraneous-dependencies]例外を追加しますか?#422

このユーザーの返信に基づいて

テストフォルダーの.eslintrcでdevDependencies:trueオプションを設定できます。

ルール:import/no-extraneous-dependencies:[error、{devDependencies:true}]その後、依存関係またはdevDependenciesを含まない参照パッケージのレポートを取得します。 次に、コメントを無効にすることでノイズのないルールの良さを取得します

私はそれがあなたのために働くかもしれないと思いますか?テストコードをテストディレクトリに分離しているので、これがルールの使用方法です。

また、この投稿は、依存関係リストにこれらのいくつかを望まないことを正気にしないことを確認するのに役立ちましたSharable ESLint Config =

54
PositiveGuy

テストファイルのみdevDependenciesのインポートを許可したい場合、 として、array of globsを使用できますドキュメント of no-extraneous-dependencies状態:

グロブの配列を使用する場合、リントされるファイルの名前が配列内の単一のグロブと一致する場合、設定はtrue(エラーが報告されない)に設定され、そうでない場合はfalseに設定されます。

次の設定は、テストファイルに対してのみlintを無効にします。

"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]

この方法では、devDependenciesからのインポートは引き続きエラーとして報告されます。

9
magic_al