ESLint在Yarn全局安装上有更漂亮的问题

问题描述 投票:7回答:7

我正在设置我的ReactJS环境,我正在关注该主题的FrontendMaster课程。

在通过Yarn安装了eslint和更漂亮的全局之后,作者运行这个命令eslint js\**\*.{js,jsx}并且在他的机器上,一切都很好,但我得到以下内容:

哎呀!有些不对劲! :(

ESLint无法找到插件“eslint-plugin-prettier”。出现这种情况的原因有两个:

  1. 如果全局安装ESLint,请确保全局安装eslint-plugin-prettier。全局安装的ESLint无法找到本地安装的插件。
  2. 如果在本地安装ESLint,则可能是插件未正确安装。尝试通过运行以下命令重新安装: npm i eslint-plugin-prettier @ latest --save-dev

如果您仍然无法解决问题,请停止https://gitter.im/eslint/eslint与团队聊天。

我试过谷歌,但找不到任何相关的东西。为什么会这样?我在Windows 10上,使用最新版本的Yarn(v0.24.6),我的eslintrc.json看起来像这样:

{
  "extends": ["airbnb", "prettier", "prettier/react"],
  "plugins": ["prettier"],
  "parserOptions": {
    "ecmaVersion": 2016,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "env": {
    "es6": true,
    "browser": true,
    "node": true
  }
}

UPDATE

我按照下面的Daydream的建议,虽然我没有安装nvm。但是我确实删除了node_modules文件夹,在ESLint的Gitter聊天之后,我继续在全球范围内卸载了ESLintPrettier。然后我做了ESLintPrettier devDependencies。最后,我运行yarn命令重新安装所有内容,现在我得到了这个:

Image

注意:该项目是开源的,如果你想亲眼看看,那就是on GitHub

eslint yarnpkg prettier
7个回答
0
投票

我也在做这个课程,我在网上看到的第一个提示是通过纱线安装到node_modules来引用eslint的直接路径:

./node_modules/.bin/eslint **/*.{js,jsx} --quiet

但在那之后,我遇到了- Unexpected top-level property "ecmaFeatures"的错误消息

最终,我为解决问题所做的是擦除node_modules,擦除~/.nvm/versions/node/<the version>/lib/node_modulesnpm文件夹之外的所有内容,并输入yarn重新安装所有内容。

在那之后,yarn工作正常(但我仍然必须指定安装的路径。

希望有所帮助!


0
投票

我自己也遇到了同样的问题。最新版本的eslint似乎是一个问题,我的是4.2.0。解决这个问题我:

./node_modules/.bin/eslint **/*.{js,jsx} --quiet

这将在本地删除它

    run: Yarn remove eslint
or
    run: npm uninstall eslint

我的路径可能设置不同,所以与“白日梦国家”一起做这个答案,你应该让它工作。我不确定Brian正在使用的是什么版本,我敢肯定,如果你拉下他最近的一个回购邮件,它会告诉你,但希望这会引导你朝着正确的方向前进。


0
投票

我错过了几个包裹。这是我修复它的方法。

    run: yarn add [email protected] 
or  run: npm install [email protected]

    run: eslint **/*.{js,jsx} --quiet

这是我的package.json

npm i eslint-config-prettier -save-dev
npm i eslint-config-standard -save-dev
npm i eslint-plugin-node -save-dev
npm i eslint-plugin-promise -save-dev

这是我的.eslintrc.json

{
  "name": "rpp-react",
  "private": true,
  "scripts": {
    "start": "meteor run"
  },
  "dependencies": {
    "babel-runtime": "^6.20.0",
    "meteor-node-stubs": "~0.2.4",
    "prop-types": "^15.5.10",
    "react": "^15.6.1",
    "react-addons-pure-render-mixin": "^15.6.0",
    "react-dom": "^15.6.1",
    "react-tap-event-plugin": "^2.0.1"
  },
  "devDependencies": {
    "babel-eslint": "^8.0.0",
    "eslint": "^4.7.2",
    "eslint-config-prettier": "^2.5.0",
    "eslint-config-standard": "^10.2.1",
    "eslint-plugin-flowtype": "^2.35.1",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-jsx-a11y": "^5.1.1",
    "eslint-plugin-node": "^5.1.1",
    "eslint-plugin-prettier": "^2.3.1",
    "eslint-plugin-promise": "^3.5.0",
    "eslint-plugin-react": "^7.3.0",
    "eslint-plugin-standard": "^3.0.1",
    "prettier": "^1.7.0"
  }
}

0
投票

这是一个丑陋的事,但对我来说这只是解决这个问题的唯一方法。我使用“strace”工具来检查需要哪些模块,我复制了那些文件(请在这一步中使用pacience!)并且它有效:)

{
  "extends": [
    "standard",
    "plugin:flowtype/recommended",
    "plugin:react/recommended",
    "prettier",
    "prettier/flowtype",
    "prettier/react",
    "prettier/standard"
  ],
  "plugins": [
    "flowtype",
    "react",
    "prettier",
    "standard"
  ],
  "parserOptions": {
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "env": {
    "es6": true,
    "node": true
  },
  "rules": {
    "prettier/prettier": "error"
  }
}

是的...你必须滚动一些行,直到你找到这样的东西:

stat(“/ usr / local / share / .config / yarn / global / node_modules / eslint / node_modules / eslint-plugin-prettier”,0x7fff5c139db0)= -1 ENOENT(没有这样的文件或目录)

你需要复制所需的模块......它会起作用。

这些是我必须手动复制的模块列表(在/usr/local/share/.config/yarn/global/node_modules/eslint/node_modules/中)

strace eslint --debug Person.js

请原谅我丑陋的英语,我正在学习:)


0
投票

将依赖项添加到eslint-config-airbnb eslint-config-airbnb-base eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-prettier eslint-plugin-prettier/node_modules/fast-diff eslint-plugin-react 作为附加依赖项


0
投票

在这里,您通过以下方式全局安装ESLint开发依赖

.pre-commit-config.yaml file

并在项目目录中安装其他开发依赖项。

  • eslint-配置,漂亮
  • eslint-CONFIG-反应
  • eslint-插件,漂亮
  • eslint-插件反应的

并且ESLint无法找到那些其他开发依赖项。因此,您需要全局安装所有这些开发依赖项以解决此问题。

要么

在项目目录上安装所有这些开发依赖项并使用命令:

sudo npm install --global eslint-plugin-react

0
投票

我在你提到的Frontend Masters课程中跟随~/<project_directory>/node_modules/.bin/eslint **/*.{js,jsx} --quiet 时遇到了同样的错误(“无法找到模块eslint-config-prettier / react”),并且能够通过安装steps来解决它,如下所示,然后运行lint脚本:

eslint-config-prettier

或者,如果使用纱线:

npm install --save-dev eslint-config-prettier

请注意,eslint-config-prettier“关闭所有不必要的或可能与更漂亮的冲突的规则”。

© www.soinside.com 2019 - 2024. All rights reserved.