簡體   English   中英

具有Babel,Flow,React和React Native的ESLint配置

[英]ESLint configuration with Babel, Flow, React and React Native

我正在用React Native開發一個移動應用程序,並且一段時間以來我一直在嘗試正確配置ESLint(包括Babel,Flow和Prettier)。

我在VSCode中收到以下錯誤: 'module' should be listed in the project's dependencies. eslint(import/no-extraneous-dependencies) 'module' should be listed in the project's dependencies. eslint(import/no-extraneous-dependencies) 這適用於我的所有模塊和插件,例如react,react-native等。 我安裝了每個軟件包和VSCode ESLint擴展,但是ESLint仍然會出現此錯誤。 也許我在extends部分中也重復了一些功能,我想知道我的配置是否正確,是否可以消除此錯誤(其他所有功能都可以正常工作)。

.eslintrc.json

{
  "extends": [
    "airbnb",
    "plugin:react/recommended",
    "plugin:flowtype/recommended",
    "plugin:prettier/recommended",
    "prettier",
    "prettier/babel",
    "prettier/react",
    "prettier/flowtype",
    "prettier/standard"
  ],
  "plugins": [
    "react",
    "react-native",
    "flowtype",
    "standard",
    "prettier"
  ],
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true,
      "modules": true
    }
  },
  "env": {
    "browser": true,
    "jest": true
  },
  "rules": {
    "import/no-unresolved": "off",
    "react/jsx-filename-extension": [
      1,
      {
        "extensions": [
          ".js",
          ".jsx"
        ]
      }
    ],
    "prettier/prettier": [
      "error",
      {
        "trailingComma": "es5",
        "singleQuote": true,
        "printWidth": 100
      }
    ]
  }
}

package.json

{
  "name": "PICSTART",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "ios": "react-native run-ios --simulator=\"iPhone XR\"",
    "android": "react-native run-android",
    "debugjs": "react-devtools",
    "test": "jest",
    "flow": "node_modules/flow-bin/vendor/flow"
  },
  "dependencies": {
    "@okgrow/react-native-copilot": "^2.4.1",
    "moment": "^2.24.0",
    "react": "16.5.0",
    "react-native": "0.57.1",
    "react-native-camera": "^1.3.0",
    "react-native-datepicker": "^1.7.2",
    "react-native-fs": "^2.13.3",
    "react-native-image-picker": "^0.28.0",
    "react-native-loading-spinner-overlay": "^1.0.1",
    "react-native-modal": "^9.0.0",
    "react-native-svg": "^9.3.3",
    "react-native-vector-icons": "^6.1.0",
    "react-navigation": "^2.0.4",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-mock-store": "^1.5.1",
    "redux-thunk": "^2.3.0"
  },
  "devDependencies": {
    "@babel/core": "^7.1.2",
    "@babel/runtime": "^7.1.2",
    "babel-eslint": "^10.0.1",
    "babel-jest": "23.6.0",
    "eslint": "^5.15.3",
    "eslint-config-airbnb": "^17.1.0",
    "eslint-config-prettier": "^4.1.0",
    "eslint-plugin-flowtype": "^3.4.2",
    "eslint-plugin-import": "^2.16.0",
    "eslint-plugin-jsx-a11y": "^6.2.1",
    "eslint-plugin-prettier": "^3.0.1",
    "eslint-plugin-react": "^7.12.4",
    "eslint-plugin-react-native": "^3.6.0",
    "eslint-plugin-standard": "^4.0.0",
    "flow-bin": "^0.78.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.47.0",
    "prettier": "^1.16.4",
    "react-test-renderer": "16.5.0"
  },
  "jest": {
    "preset": "react-native",
    "testRegex": "./__tests__/[^setup].*.js$",
    "transformIgnorePatterns": [
      "node_modules/(?!react-native|native-base|react-navigation|react-native-fabric)"
    ],
    "setupFiles": [
      "./__tests__/setup.js"
    ]
  }
}

發生此錯誤eslint(import/no-extraneous-dependencies)是因為您要導入的文件不在package.json.

如果一切正常,在編譯時沒有錯誤,您可以在這里查看文檔 ,他們解釋了如何禁用此規則。

如果.eslintrc.jsonpackage.json不在同一文件夾中,則可能會導致錯誤,因為eslint會查找package.json文件,但由於它在另一個文件夾中而可以找到它。

編輯:也許您錯過了"es6": true"env" "es6": true

嘗試

"env": {
    "es6": true,
    "browser": true,
    "jest": true
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM