我正在构建 SSR 渲染的 Gatsby React 应用程序,在执行“gatsby build”时出现以下错误。几天来一直在寻找此错误的解决方案,因为很难从描述本身找出导致此错误的原因。所有的描述都是“回调已被调用”
C:\Users\<project_folder>\node_modules\yoga-layout-prebuilt\yoga-layout\build\Release\nbind.js:53
throw ex;
^
Error: Callback was already called.
at throwError (C:\Users\<project_folder>\node_modules\neo-async\async.js:16:11)
at C:\Users\<project_folder>\node_modules\neo-async\async.js:2818:7
at processTicksAndRejections (internal/process/task_queues.js:75:11)
error Command failed with exit code 7.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
我正在使用 vuejs (它使用 webpack)并且遇到了同样的问题。我使用纱线作为我的包管理器,并尝试升级和重新安装我的所有依赖项并清除缓存,但似乎没有任何效果。
虽然我确实找到了适合我的情况的解决方案。似乎 vuejs (或 webpack - 不完全确定)对文件和文件夹名称非常区分大小写,我的绝对文件夹路径中有各种大小写样式,这似乎在 git bash 中引起了问题。然而,当我使用 cmd 时,它确实有效。 我有理由相信cmd正常化了这个问题。
简而言之: 如果 git bash 给你错误,请尝试 cmd。
经过几天的寻找解决方案来解决这个令人伤脑筋的问题。按照下面的方式更新我的所有软件包,消除了错误。
npm install -g npm-check-updates
ncu -u
npm install
我在构建 Vuejs webpack 项目时遇到类似的错误, 但后来我尝试使用“nodejs 命令提示符”运行构建命令 成功无错误,
所以我意识到我应该“更新/升级Powershell”本身, 永远消除了这黑暗😊
如果命令提示符上的当前目录与您所在文件夹的大小写不匹配,则在 Windows 上可能会发生这种情况。
举例来说,您的项目位于
C:\Development\project
(Development 文件夹开头有一个大写字母)。
如果 shell 上当前目录的路径是
C:\development\project
(Directory 中的小写 D,这是不正确的),Windows 会乐意允许该路径,那么在使用 vue-cli
时可能会导致此问题。要解决这个问题,请更改 shell 上当前目录的路径以使用正确的大小写。
经过大量搜索和反复试验,我发现我需要从已安装的软件包中删除 Webpack。在我删除 webpack 并重新运行 YARN/NPM 后,这个错误就消失了。
我今天也意外地出现了这个问题。我最终删除了cache、public和node_modules目录并恢复到以前的package-lock.json和package.json文件。运行 npm 我再次以某种方式修复了它。不知道交易是什么。
将所有文件夹名称重命名为小写,例如。
C:/Projects/Vue-App/
至 C:/projects/vue-app/
。
如果不起作用,请删除
node_modules
文件夹并重新安装软件包:
npm install
或 yarn
。
就我而言,我已经为一个反应应用程序进行了 craco 设置,该应用程序也启用了 PWA。 我将一些函数从单独的自定义模块导入到导致此问题的
service-worker.js
文件中。
`从 @XXX/shared 导入 {getAppVersion}'。评论这一行就成功了。
我在 React 项目中遇到了这个问题。解决方案是将yarn从v2.4.2降到v1.22.19,并将Node从v19.2.0降到v14.21.0。有点烦人,但这解决了回调问题。
我遇到这个错误是因为我使用了与 Node 不兼容的 Angular 版本