【问题标题】:SublimeLinter ESLint couldn't find the pluginSublimeLinter ESLint 找不到插件
【发布时间】:2023-04-04 08:47:02
【问题描述】:

在 Sublime Text Editor 3.x 中编辑 javascript 文件时,出现错误:

Oops! Something went wrong! :(

ESLint: 6.0.1.

ESLint couldn't find the plugin "eslint-plugin-chai-expect".

(The package "eslint-plugin-chai-expect" was not found when loaded as a Node module from the directory "C:\workspace\flltools".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

    npm install eslint-plugin-chai-expect@latest --save-dev

The plugin "eslint-plugin-chai-expect" was referenced from the config file in "modules\scoring\.eslintrc.yml".

If you still can't figure out the problem, please stop by https://gitter.im/eslint/eslint to chat with the team.

我尝试了多种我在网上找到的解决方案,包括删除全局 ESLint/将所有与 ESLint 相关的包移动到全局,更改 SublimeLinter.settings 文件。只有在通过 Sublime 运行 lint 时才会出现该问题。当我运行eslint 命令时,它运行良好。

如果有人知道为什么会发生这种情况,请帮助我!

谢谢

【问题讨论】:

    标签: sublimetext eslint sublimelinter


    【解决方案1】:

    据我所知,这确实是迁移到 ESLint v6 的问题。 但是这不是全局安装问题。

    现在的问题是 ESLint 在运行 eslint 命令的工作目录中查找。正如你在your comment 中所说:

    它似乎正在查看父文件夹(正如您在错误中看到的那样,它正在查看 c:/workspace/flltools,而我的项目位于 c:/workspace/flltools/modules/scoring

    所以你的编辑器在父目录中运行 eslint,而不是在 package.json 文件所在的目录中。我猜你的编辑器的项目根目录比 package.json 文件所在的位置高一级。

    现在看来,这个问题已经通过 github 问题 #1626 在 SublimeLinter 插件中进行了修补:Wrong working directory on nested local eslint installs (breaks eslint@6)

    请注意,我在 VSCode 和 Vim 上都有类似的问题,所以这不是一个特定的 Sublime Text 问题,而更像是一个 ESLint 问题。

    在 ESLint v6 迁移文档中,它有一个关于 "Plugins and shareable configs are no longer affected by ESLint’s location" 的部分。它建议:

    如果您使用位于本地项目之外的配置文件(带有--config 标志),请考虑将插件安装为该配置文件的依赖项,并将--resolve-plugins-relative-to 标志设置为配置文件的位置。

    这个--resolve-plugins-relative-to 将解决问题,因为您可以指定package.json 所在的路径。

    【讨论】:

      【解决方案2】:

      很可能您已将 ESLint 更新到 v6

      根据Migrating to 6.0 Docs

      如果您使用 ESLint 全局安装(例如使用npm install eslint --global 安装)以及插件。

      然后你应该在你运行 ESLint 的项目中本地安装这些插件。

      在您的情况下,将eslint-plugin-chai-expect 和其他插件(如果使用)作为devDependencies 在本地安装到您的项目中。

      npm install --save-dev eslint-plugin-chai-expect
      

      如果您的配置文件扩展了可共享的配置和/或解析器,您应该确保将这些包安装为包含该配置文件的项目的依赖项。

      【讨论】:

      • 是的,他们是。在我的package.json 中,我有那些devDependencies。它似乎正在查看父文件夹(正如您在错误中看到的那样,它正在查看 c:/workspace/flltools,而我的项目在 c:/workspace/flltools/modules/scoring。也许这与问题有关?我检查并没有 @987654330 @ 在那个目录中。
      • 我刚刚查看了包含我共享文件的原始项目,eslint-plugin-chai-expectoptionalDependencies 中。你认为这可能是个问题吗?
      • 是的,可能是根据文档,如果配置文件是可共享的,那么将它们作为 依赖项 看看它是否有效。
      • 当我使用 Sublime 时,我会打开一个完整的项目(在本例中称为 flltools)。我发现如果在 Sublime 中我只打开当前存储库(即 flltools/modules/scoring),问题不会重现。我想可能出于某种原因它只在根目录中搜索package.json...
      猜你喜欢
      • 2019-07-30
      • 1970-01-01
      • 2021-04-08
      • 2014-01-24
      • 2019-06-28
      • 2015-04-04
      • 2019-07-29
      • 2018-07-04
      • 2014-12-09
      相关资源
      最近更新 更多