解决方法:“未找到规则'@ typescript-eslint / consistent-type-assertions'的定义”

时间:2019-09-20 16:48:50

标签: reactjs typescript npm create-react-app typescript-typings

由于以下错误,我的React应用没有编译失败:找不到规则'@ typescript-eslint / consistent-type-assertions'的定义

我有点茫然。我在项目中找不到任何当前的规则定义。该项目最初正在编译。重新构建应用程序后,错误开始了。

应用无法编译并出现错误:未定义规则'@ typescript-eslint / consistent-type-assertions'

pack.json-

{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@types/react-dom": "16.9.0",
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "react-router-dom": "^5.0.1",
    "react-scripts": "3.1.1",
    "styled-components": "^4.3.2",
    "typescript": "^3.5.3"
  },
  "scripts": {
    "start": "PORT=3005 react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --transformIgnorePatterns",
    "e2e": "./node_modules/.bin/cypress open"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@testing-library/dom": "^6.1.0",
    "@testing-library/jest-dom": "^4.0.1",
    "@testing-library/react": "^9.1.3",
    "@types/jest": "^24.0.18",
    "@types/lodash": "^4.14.137",
    "@types/node": "^12.7.2",
    "@types/react": "^16.9.2",
    "@types/react-router-dom": "^4.3.4",
    "@types/styled-components": "^4.1.18",
    "babel-jest": "^24.9.0",
    "cypress": "^3.4.1"
  }
}

7 个答案:

答案 0 :(得分:8)

遇到此问题时,我使用create-react-app my-app --typescript创建了一个全新的应用程序,然后从刚刚完成的另一个项目中复制了依赖项。经过一番摸索之后,我注意到react-scripts的版本为3.1.1,当我终于再次运行它时,工作的package.json3.1.2处看起来像是罪魁祸首。有效的package.json如下所示:

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@types/jest": "24.0.18",
    "@types/node": "12.7.5",
    "@types/react": "16.9.2",
    "@types/react-dom": "16.9.0",
    "node-sass": "^4.12.0",
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "react-scripts": "3.1.2",
    "typescript": "3.6.3"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

尝试使错误消失是一个挑战,Visual Studio中存在一个邪恶的错误,该错误将使VSCompiler.exe和其他服务仅在使用服务挂起时所拥有的文件版本的情况下挂起起来不管您什么都不做,直到重新启动它们后才起作用,请参阅此answer上的一些提示如何解决它,我知道这是针对Angular的,但适用相同的原理。

答案 1 :(得分:7)

只需将react-scripts更新到版本3.1.2。我通过卸载并重新安装解决了该问题。 在命令行中:

卸载:

npm uninstall react-scripts

然后重新安装:

npm i react-scripts

答案 2 :(得分:5)

我找到了解决方案。 1)删除node_modules 2)将React-scripts的Package.Json行更新为:“” react-scripts“:” 3.1.2“” 3)运行npm i

这应该有效

答案 3 :(得分:0)

我可以通过再次运行yarn install来解决问题。如果仍然无法解决,则可以尝试完全删除node_modules文件夹,然后再次运行yarn install

答案 4 :(得分:0)

我刚刚在克隆的create-react-app git存储库中发现了此确切错误。先运行npm install,再运行npm start,也会得到相同的错误消息。

然后我意识到创作者一直在使用yarn而不是npm。因此,我删除了该存储库,将其重新克隆并运行yarn install,然后运行yarn start。错误已清除。

因此,这可能是npm vs纱线问题。尤其是如果您以前已经安装过create-react-app,它将default to yarn进行安装;如果继续使用npm,可能会导致问题?意识到这是一个不同的情况,因为这是您自己的应用程序,但可能是相关的。

诚然,我遇到了另一个错误,但至少我已经取得了进步...

答案 5 :(得分:0)

我之前尝试了所有步骤,但是,实际解决我问题的方法是这些步骤:

  • 1.-删除node_modules
  • 2.-删除package-lock.json
  • 3.-像这样更新React脚本的package.json行:“ react-scripts”:“ 3.1.2”
  • 4.- npm install(或sudo npm install,如果需要进一步的授权)。

我希望它可以帮助其他人。

答案 6 :(得分:0)

yarn add -D @typescript-eslint/eslint-plugin@latest或更准确地说yarn add -D @typescript-eslint/eslint-plugin@^2

我遇到了这个问题,因为该插件位于@typescript-eslint/eslint-plugin@^1