【问题标题】:Module not found: Can't resolve 'async_hooks'找不到模块:无法解析“async_hooks”
【发布时间】:2022-06-23 18:58:10
【问题描述】:
Failed to compile.

./node_modules/vm2/lib/resolver-compat.js
Module not found: Can't resolve 'async_hooks' in \node_modules\vm2\lib'
Error from chokidar (E:\node_modules): Error: EBUSY: resource busy or locked, lstat 'E:\pagefile.sys'
Error from chokidar (E:\node_modules): Error: EBUSY: resource busy or locked, lstat 'E:\pagefile.sys'

当我尝试运行我的应用程序(react)时,突然出现了这个错误,甚至重新安装节点模块也不起作用,我也尝试重新安装节点和 webpack,但都没有成功。

【问题讨论】:

  • 安装 npm install async_hooks
  • 我做了,但仍然遇到同样的错误
  • 你能把你的代码贴在这里吗?
  • 项目很大,有需要我可以上传到github上。
  • 那作为参考比较好。

标签: node.js reactjs webpack


【解决方案1】:

需要询问您是否已下载该项目或是否已彻底完成? 如果您已经在项目目录下载(由于 package.json 的存在),您可以简单地:

npm i

该命令将安装 package.json 文件中表示的所有具有相同版本的包。

如果这个命令没有帮助你,你可以做另一件事:

使用此命令全局更新 NPM:

    npm install -g npm@latest

安装另一个版本的“async_hooks”。不幸的是,该软件包只有一个版本。

【讨论】:

  • 另外,您可以浏览 npm 包以在需要时找到类似的包。
  • 我做到了,我正在关注一个项目的 youtube 教程,当我的项目正常时突然出现这个错误,我把它转到以前的版本,我仍然得到这个错误,如果我下载了一个项目并运行它,它会运行良好。我也做了 npm install npm 的事情,但仍然得到了这个
  • 请再次检查您的组件。 VSCODE 自动导入功能可能会发生这种情况。因此,这意味着当您编写代码或导入某些内容时,vscode 很可能会自动导入某些内容。所以请检查您的文件,确保所有导入都正常,不代表路径错误或导入错误。
  • 真的是这样!!谢谢!!!
【解决方案2】:

'async_hooks' 的问题在于它只能在服务器端的节点中使用 - 例如,如果webpack 尝试创建一个执行静态包分析的“通用包”——它将无法在客户端找到“async_hooks”(因此出现错误)。

但是:你可以这样规避:

const async_hooks = eval("typeof window === 'undefined' && require('async_hooks')");
if (async_hooks) { /*.../ }

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 2021-10-16
    • 2021-08-16
    • 2019-05-10
    • 2021-10-17
    • 2021-11-01
    • 2018-04-20
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多