Eslinter не обнаруживает определенные типы пропов для реактивного компонента - PullRequest
0 голосов
/ 08 октября 2018

In Создан файл javascript со следующим кодом:

import React, {Component, Fragment} from "react"
import PropTypes from  "prop-types"

export default class DefaultBootstrap extends Component {
  render() { return (<div>Hi</div>) }
}

DefaultBootstrap.propTypes = {
  name: PropTypes.bool.isRequired
}

Когда я запускаю npm start, он показывает следующую ошибку линтера:

xxx/xxx/index.js
  1:1  warning  Definition for rule 'prop-types' was not found  prop-types

Так что мой вопрос, почему этопоказывает мне вышеупомянутое предупреждение, даже когда я определил для него правила типов пропов?

Я использовал Webpack, Babel, React и Eslinter для настройки моего приложения.

.eslintrc.json

{
  "parser": "babel-eslint",
  "plugins": ["react"],
  "rules": {
    "prop-types": ["warn"],
  }
}

package.json (Нажмите, чтобы увидеть полный файл)

{
  "devDependencies": {
    "@babel/core": "7.1.2",
    "babel-eslint": "10.0.1",
    "babel-loader": "8.0.4",
    "eslint": "5.6.1",
    "eslint-loader": "2.1.1",
    "eslint-plugin-react": "7.11.1",
    "webpack": "4.20.2",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.5"
  },
  "dependencies": {
    "node": "^10.11.0",
    "prop-types": "15.6.2",
    "react": "16.5.2",
    "react-dom": "16.5.2",
    "react-scripts": "2.0.3",
  }
}

webpack.config.js (Нажмите здесь, чтобы увидеть полный файл)

    rules: [
        {
          test: /\.m?js$/,
          exclude: /(node_modules|bower_components)/,
          use: {
            loader: 'babel-loader',
            options: {
              presets: ['@babel/preset-env']
            }
          }
        },
        {
          test: /\.js$/,
          exclude: /node_modules/,
          use: ['babel-loader', 'eslint-loader']
        },

1 Ответ

0 голосов
/ 08 октября 2018

Прежде чем приступить к просмотру вашего кода, ESLint сначала ищет реализацию правила prop-types.Сообщение об ошибке говорит, что не может найти это правило.Так как правило prop-types предоставляется плагином eslint-plugin-react и не является одним из встроенных правил, вам необходимо добавить префикс его имени в .eslintrc.json с именем плагина и косой чертой: react/prop-types.Это говорит ESLint, что он должен искать правило prop-types внутри eslint-plugin-react.

{
  "parser": "babel-eslint",
  "plugins": ["react"],
  "rules": {
    "react/prop-types": ["warn"],
  }
}

Более подробную информацию вы можете найти в документах по настройке правила .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...