webpack 未找到模块:无法解析'async_hooks'

aoyhnmkz  于 2023-10-19  发布在  Webpack
关注(0)|答案(4)|浏览(386)
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也不起作用。

flvtvl50

flvtvl501#

“hooks_hooks”的问题是,它只在服务器端的节点中可用-如果例如。webpack尝试创建一个“通用捆绑包”执行静态捆绑包分析-它将无法在客户端找到'universal_hooks'(因此出现错误)。
但是,你可以像这样绕过它:

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

r55awzrz2#

我已通过在webpack 5配置文件中添加以下回退来修复此问题

resolve: {
  
  fallback: {
   
    async_hooks: false,
  },
}
yqlxgs2m

yqlxgs2m3#

需要问你,如果你已经下载了该项目或你彻底吗?如果你已经在项目目录下下载了(由于package.json的存在),你可以简单地:

npm i

该命令将安装package.json文件中表示的所有具有相同版本的包。
如果这个命令没有帮助你,你可以做另一件事:
使用以下命令全局更新NPM:

npm install -g npm@latest
  • 安装另一个版本的“hooks_hooks”。不幸的是,该软件包只有一个版本。*
cyvaqqii

cyvaqqii4#

在我的例子中,这是由于在'use client'组件中使用<Suspense>造成的。
仅在服务器组件中使用它。

相关问题