web-dev-qa-db-ja.com

eslintrcで解決されるパスを手動で追加する方法

プロジェクトにmainというフォルダーがあり、それをモジュールのように解決しています。たとえば、import x from 'main/src'main/src/index.jsをインポートします。これは、webpackのエイリアス解決設定を通じて行われます。

私が抱えている問題は、eslintを介してエラーを取り除くことです。 eslintがwebpack resolveプラグインを提供していることは知っていますが、それを機能させるのに苦労しています。これは、webpack 2を使用していて、webpack構成ファイルでes6を使用しているためだと思われます。

私のエスリントのこの問題を解決する解決設定を手動で記述する方法はありますか?


私が仕事を見た他の唯一のハックはimport/core-modulesを使用していますが、サブディレクトリツリーmain/src/barmain/src/fooのすべてのフォルダをリストする必要があります。これは理想的ではありません。

39
wlingke

以下のリンクが役立つと思います。 configを使用して解決ディレクトリを追加できます。

https://github.com/benmosher/eslint-plugin-import#resolvers

たとえば、src/を解決する場合は、.eslintrcに次のように記述できます。

{
  "settings": {
    "import/resolver": {
      "node": {
        "paths": ["src"]
      }
    }
  }
}

次に、srcディレクトリからESLintが解決します。 const moge = require('hoge/moge');と書くことでsrc/hoge/moge.jsを要求でき、ESLintはそれを知っています。

91
Sota Sugiura

この質問を見るには遅すぎます。実際、 eslint-import-resolver-alias という名前のリゾルバーが既にあり、以下の設定でこの機能を実装しています。

{
  settings: {
    'import/resolver': {
      'alias': [
        ['main/src', './main/src']
       ]
     }
  }
}
10
johvin