2017-10-08 7 views
0

マイプロジェクト持た2 package.jsoneslintは、複数のpackage.jsonに対処していない

root folder 

└ app ---- /public 
     └ /styles 
     └ /src 
     └ package.json 
     └ eslintrc.json 
     └ webpack.config.js 

└ server - /something 
     └ /something 

└ package.json 
└ ...etc 

原子エディタは、糸くずのエラーを示しているpackage.json

"dependencies": { 
    "@types/chart.js": "^2.6.8", 
    "@types/react": "^16.0.10", 
    "@types/react-dom": "^16.0.1", 
    "bootstrap": "^4.0.0-beta", 
    "chart.js": "2.6.0", 
    "font-awesome": "^4.7.0", 
    "history": "4.7.2", 
    "jwt-decode": "^2.2.0", 
    "prop-types": "^15.6.0", 
    "react": "^15.6.1", 
    "react-chartjs-2": "2.6.1", 
    "react-dom": "^15.6.1", 
    "react-router-dom": "4.2.2", 
    "react-transition-group": "^1.2.0", 
    "reactstrap": "^4.8.0", 
    "simple-line-icons": "^2.4.1" 
}, 

import React from 'react'; 
// 'react' should be listed in the project's dependencies. Run 'npm i -S react' to add it (import/no-extraneous-dependencies) 

in eslintrc.json

module.exports = { 
    "extends": "airbnb", 

    "env": { 
    "browser": true, 
    "node": true 
    }, 

    "rules": { 
    "no-mixed-operators": [2, { "allowSamePrecedence": true }], 
    "react/no-find-dom-node": 1, 
    "react/no-string-refs": 1, 
    "react/no-unused-prop-types": 1, // TODO: enable 
    "jsx-a11y/no-static-element-interactions": 1, // TODO: enable 
    "no-plusplus": 1, // TODO: enable 
    "no-console": 0, // TODO: enable 
    "no-alert": 0, 
    "max-len": ["error", 120], 
    "no-underscore-dangle": ["error", { "allow": ["_isMounted"] }], 
    "import/no-extraneous-dependencies": ["error", {"devDependencies": true}], 
    }, 
}; 

eslintは、標準でrootフォルダのpackage.jsonを認識していると思います。 しかし、私はそれがルートフォルダ内のpackage.jsonを無視し、srcフォルダ内のpackage.jsonを認識したいと考えています。

どうすればいいですか?

+0

こんにちはバディ まず私はあなたが今eslintを使用しているyou.Whyから一つの質問を頼みますよ? 唯一の目的をリンティングのために、私はあなたの時間を節約する代わりにeslint.Thatの標準JSを使用することをお勧めしたいと思いますし、あなたが '標準--fix' ... –

+0

@ShravanJain I簡単なコマンドを入力して、小さなバグを修正することができた場合まだstandard.jsを知らない。私は試してみる –

+0

私はちょうど私のプロジェクトで標準JSを統合しました。それは素晴らしいです。ここでは、lintingとallのルールを定義する必要はありません。 –

答えて

0

私はこの問題を自分で解決しました。

追加「PACKAGEDIR」:.eslintrc.json

"rules" : { 
    ""import/no-extraneous-dependencies": ["error", {"devDependencies": true, "packageDir": "./src"}], 
0

で「./src」これは無関係かもしれないが、私は注意したい最初の項目は、あなたからあなたのESLint構成の名前を変更する必要があるかもしれないということですeslintrc.json.eslintrc.json(名前の前にドットが付きます)。トラブルの原因ではないかもしれませんが、おそらく階層的解決に干渉している可能性があります。ここでは、複数の設定拡張形式(https://eslint.org/docs/user-guide/configuring#configuration-file-formats)を調べることができます。

具体的には、あなたが探している設定オプションはpackageDirです。彼らのレポでのドキュメントの引用:

をもpackageDirと呼ばれるもう一つのオプションがあり、このオプションはpackage.jsonを含むフォルダへのパスを指定することで、現在の作業ディレクトリからの相対です。

"import/no-extraneous-dependencies": ["error", {"packageDir": './some-dir/'}]

この情報がお役に立てば幸い!

出典:

https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md

+0

ありがとうございます。あなたのソリューションはとてもうまく動作します。 –

関連する問題