如何修复 eslint createRequire 不是 Atom 编辑器中的函数?

How do I fix eslint createRequire is not a function in Atom Editor?

我很难找到这个问题,所以我发帖是为了帮助其他搜索类似错误的人。


我决定在 Ubuntu 18.04 上使用 eslint 和 Node.js 在 Atom 中建立一个新项目。

ESlint 本身已安装并且 运行 与我的配置扩展 eslint:recommended 没问题,但是当我安装 eslint-config-airbnb-base 并将我的配置更改为扩展 airbnb-base 时,我开始在 Atom 中遇到错误,它无法解析我的文件。

Error while running ESLint: createRequire is not a function.

删除airbnb并依赖eslint-plugin-import给出了类似的错误:

Error while running ESLint: Failed to load plugin 'import' declared in '.eslintrc.yaml': createRequire is not a function.

但是,运行 命令行上的 eslint 工作正常。

这是一个兼容性问题。

This change to eslint 删除了支持低于 v10.12.0

节点版本的 polyfill

我是 运行 Atom 1.45.0,它使用节点 v10.11.0。 运行 命令行中的 eslint 有效,因为我在那里安装了节点 v12.18.2

所以您有两个选项可以解决此问题:

  1. 升级您的 Atom 编辑器(在撰写本文时,版本 1.49.0 是最新的,它使用节点版本 v12.0.0)。如果这对您来说不可能,那么...
  2. 将 eslint 降级到版本 6.8.0(7.0.0 之前的最后一个版本)。这个版本仍然包含 createRequire.
  3. 的 polyfill

您好,您可以轻松解决这些问题。 确保在终端中检查您已安装的节点版本 如果它已过时,则使用节点版本管理器更新节点 在终端中,键入命令 $ nvm 安装节点 14.15.0 node 的当前 lts 版本是 14.15。0.once 你安装 lts 版本的 node $节点-v ..14.15.0 $npm -v ..6.7.0 现在启动开发服务器, $npm 开始

这次不会显示任何错误