npm error: Cannot find module '.../immer.js' when building a create react app through CLI

npm error: Cannot find module '.../immer.js' when building a create react app through CLI

我正在尝试使用 create react app 和 bootstrap 构建网站。我们通过 GH-pages 托管网站,我们的存储库是 here。直到今天,我在本地部署站点时都没有遇到问题,但几个小时后仍无法解决问题。

我将完成我执行的步骤以到达我所在的位置。

  1. 通过 GH Desktop 克隆存储库
  2. 打开终端并输入brew reinstall node
  3. 移动到项目目录并输入npm install react-bootstrap bootstrap@4.6.0npm install
  4. 最后输入npm start

我遇到了这个:

当我查看“.../node_modules/immer/dist”时,我看到它包含 'immer.d.ts'。此外,当我查看“.../node_modules/react-dev-utils”时,会出现 'immer.js'。我不太了解 Typescript,但“主要”条目看起来存在,并且文件都存在:

我一整天都卸载并重新安装了包管理器和存储库。我什至重置了我的终端和文本编辑器以在重新启动时对其进行测试。我经历了许多 Whosebug 问题并做了一些事情,例如仅删除 node_modules 和 package_lock.json 文件然后输入 npm install,但没有成功。

有谁知道少了什么?我该怎么办?

更新 'immer' 文件的问题已按照响应中提供的步骤修复:清除缓存、更新存储库、获取新克隆、删除损坏的文件以及安装 npm。

执行这些步骤后,终端返回了这个问题。我也尝试过对这个问题进行故障排除,但感觉我在兜圈子。任何有针对性的建议都会有所帮助。

首先也是最重要的:从 git 索引中排除您的 node_modules 文件。 .gitignore 中有一个条目可将其排除,但看起来您在添加该条目之前已将 node_modules 包含在索引中。现在你需要 运行 更复杂一点 algorithm 来摆脱它。

快速解决您的问题(对我来说有点多余,但只是为了确保您没有遗漏任何重要信息):

# force cleaning npm cache. you may have a broken package there
npm cache clean --force 

# clone repository into newly created directory (guaranteed to be clean)
git clone https://github.com/cameron-keene/ACE_Website somedir

# switch to the new directory
cd somedir

# remove broken node_modules
rm -rf node_modules

# remove (possibly) broken package-lock
rm package-lock.json

# fresh dependency install
npm install

现在,您存储在 node_modules 中的 immer 依赖项似乎已损坏。因为它有很多丢失的文件,dist/immer.js 是其中之一。这就是您收到错误的原因。

此问题已通过

解决
npm install --legacy-peer-deps