node.js - 由于 macOS Big Sur 升级,无法再安装 npm 包

标签 node.js docker npm npm-install macos-big-sur

升级到 macOS Big Sur 后我做不到 npm install npm 比 7 旧(所以 npm v7 很好)。
任何时候我都收到错误消息 超出最大调用堆栈大小 在干净的项目文件夹中(没有 node_modules 文件夹和 package-lock.json 文件)。
我被捆绑使用

ProductName:    macOS
ProductVersion: 11.0.1
BuildVersion:   20B50
Darwin: 20.1.0
nodejs v14.15.1
npm version 6.14.8
我试过:npm cache clean --forcenpm rebuild通过 Homebrew、nvm 手动安装 Node,并将 npm 降级到各种较低版本。
重新安装 Homebrew 以获得升级到 Big Sur 之前使用的新鲜背景。
重新安装 xcode 命令行工具。
运行 Node 并映射 docker 容器 ubuntu:focal 中的项目。
输出的最后几行返回 npm install --loglevel verbose :
npm http fetch GET 200 https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz 23ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz 15ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz 14ms (from cache)
npm timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 51352ms
npm timing stage:loadIdealTree Completed in 51653ms
npm timing stage:generateActionsToTake Completed in 225ms
npm verb correctMkdir /Users/dominikjelinek/.npm/_locks correctMkdir not in flight; initializing
npm verb lock using /Users/dominikjelinek/.npm/_locks/staging-a03ae73070af7d1f.lock for /Users/dominikjelinek/home/ccb-survey/survey/components/node_modules/.staging
npm timing audit submit Completed in 931ms
npm http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/audits/quick 931ms
npm timing audit body Completed in 3ms
npm timing action:extract Completed in 7997ms
npm timing action:finalize Completed in 91317ms
npm verb unlock done using /Users/dominikjelinek/.npm/_locks/staging-a03ae73070af7d1f.lock for /Users/dominikjelinek/home/ccb-survey/survey/components/node_modules/.staging
npm timing stage:rollbackFailedOptional Completed in 2ms
npm timing stage:runTopLevelLifecycles Completed in 156352ms
npm WARN react-plotly.js@2.5.1 requires a peer of plotly.js@>1.34.0 but none is installed. You must install peer dependencies yourself.

npm verb stack RangeError: Maximum call stack size exceeded
npm verb stack     at RegExp.test (<anonymous>)
npm verb stack     at isDepOptional (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:432:45)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:441:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb stack     at failedDependency (/Users/dominikjelinek/.nvm/versions/node/v14.15.1/lib/node_modules/npm/lib/install/deps.js:457:9)
npm verb cwd /Users/dominikjelinek/home/ccb-survey/survey/components
npm verb Darwin 20.1.0
npm verb argv "/Users/dominikjelinek/.nvm/versions/node/v14.15.1/bin/node" "/Users/dominikjelinek/.nvm/versions/node/v14.15.1/bin/npm" "install" "--loglevel" "verbose"
npm verb node v14.15.1
npm verb npm  v6.14.8
npm ERR! Maximum call stack size exceeded
更新 1
苹果发布了新的系统升级,什么都没有用。
产品版本:11.1
我不认为这是权限问题,因为我将所有项目设置为 777 chmod -R 777 project .
据我所知,我的伙伴们在 Big Sur 上运行 npm v6 很好。
在 docker 容器中,我将项目从映射文件夹复制到 docker 容器中的其他文件夹和 npm install正在按预期工作。
在 VirtualBox 中运行的 Windows 10 也会发生同样的情况,其中 npm 不在共享文件夹上工作,但在将项目复制到 VirtualBox Windows 机器中的某个内部文件夹后工作。
npm cli issue tracking 中提出了一个问题.
docker issue tracking 中提出了一个问题.
更新 2
我试图在我的 mac 机器上创建新用户以开始部分新鲜,我按照 here 的描述安装了 nvm然后跑 nvm install v14.15.4使用 npm v6.14.10。
还是一样的问题。

最佳答案

有同样的问题。通过增加文件的 ulimit 解决了.
要检查您现在拥有什么,请执行以下操作:

ulimit -a


那应该显示如下内容:
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              12288
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-v: address space (kbytes)          unlimited
-l: locked-in-memory size (kbytes)  unlimited
-u: processes                       2784
-n: file descriptors                12288
然后,要增加文件大小限制,请运行以下命令:

ulimit -f [WHATEVER SIZE LIMIT YOU WANT]


对于我自己,我决定将它设置为 unlimited以确保这不会再次成为问题,因此:

ulimit -f unlimited

关于node.js - 由于 macOS Big Sur 升级,无法再安装 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65286917/

相关文章:

c# - 如何在构建 ASP.NET Core 项目时自动安装 npm 模块

node.js - 迪尔德 : lazy symbol binding failed

javascript - 发布 npm 包后 ENOLOCAL : can't find package. json 文件

javascript - Elastic - 优先排序值

javascript - 哈皮斯 : How to send POST objects array in POSTMAN

java - Mac 主机不喜欢 Docker 容器端口转发

elasticsearch - 使用 Elasticsearch 2.1 自己构建的 Docker 容器的权限问题

docker - Kubernetes仪表板的外部端点

node.js - Gulp 4 无法完成 sass 任务

javascript - 如何在 Yeoman 生成器的 enquirer.js 多选提示中添加分隔符?