node.js - ELOOP : too many symbolic links encountered

标签 node.js angular npm

尝试点击命令时:npm install -g @angular/cli@6.1.1 注:
我有 Node.Js LTS 10.xx 版本、.Net Framework 4.7.2 开发包和所有必要的扩展。
抛出错误:

npm ERR! code ELOOP
npm ERR! syscall stat
npm ERR! path \\horofs**\users$\
npm ERR! errno -62
npm ERR! ELOOP: too many symbolic links encountered, stat '\\horofs06\users$\'

npm ERR! A complete log of this run can be found in:
npm ERR!     \\horofs**\users$\W****\AppData\Roaming\npm-cache\_logs\2020-07-31T13_26_25_468Z-debug.log
日志指出:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'install',
1 verbose cli   '-g',
1 verbose cli   '@angular/cli@6.1.1' ]
2 info using npm@6.14.6
3 info using node@v10.22.0
4 verbose npm-session 8b2e687260b66580
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 http fetch GET 200 https://registry.npmjs.org/@angular%2fcli 282ms (from cache)
8 silly pacote version manifest for @angular/cli@6.1.1 fetched in 426ms
9 verbose stack Error: ELOOP: too many symbolic links encountered, stat '\\horofs**\users$\'
9 verbose stack     at eloop (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:58:17)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:19:11)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
9 verbose stack     at realpathCached (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js:39:10)
10 verbose cwd C:\Cqe\Periscope\src\Periscope\Endava.Periscope.Web
11 verbose Windows_NT 6.3.9600
12 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "@angular/cli@6.1.1"
13 verbose node v10.22.0
14 verbose npm  v6.14.6
15 error code ELOOP
请帮我。

最佳答案

下面大家可以自行判断。令人失望的情况是,当您的 User 数据存储在包含超过 2,000 个子文件夹的文件夹中时,您可能无法使用 NodeJS。
像您一样,我的用户文件夹存储在网络驱动器而不是 C 上:
在“readGlobalPackageData()”中,self.where 的值被传递给 readPackageTree。就我而言,self.where = "\[domain]\users$[office location][userID]\AppData\npm。"realpathCached() 中的代码退出该路径并尝试读取所有子文件夹。当它到达“\[domain]\users$”时,会记录“ELOOP”错误,因为最大深度为 2000,而我公司的 Users 文件夹有超过 25,000 个子文件夹。
以下是两种可能的解决方案:
首先,从安装命令中删除 -g 以使安装本地到新应用程序的文件夹。不利的一面是,如果对其中一个依赖项进行了更新,则必须在未使用 -g 的任何地方手动安装它。如果更新包含重大更改,那会很好。
其次,我不推荐此解决方案,即编辑安装程序文件之一。安装程序正在读取您的用户文件夹中的所有 ID 文件夹,它只是因为达到了任意限制而失败。如果您增加限制,错误应该会消失,但您还会让脚本读取您网络上的所有用户 ID。请自行承担风险尝试此操作。
打开这个文件:
C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-tree\realpath.js。
在第 18 行,“if (depth > 2000)”,将 2000 更改为大于 users$(共享)文件夹下文件夹数的数字。

关于node.js - ELOOP : too many symbolic links encountered,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63193051/

相关文章:

javascript - 将足球数据 api 与 Angular 结合使用

angular - 如何在 Angular 中使用 HttpProgressEvent 接口(interface)?

node.js - 如何在 Node js 中将同步查询传递到 SQL Server?

angular - Angular2 会影响我网站的 SEO 吗?

react-native - 安装 expo-cli 时命令卡住

ios - 无效目录 Users/node_modules/crypto-browserify react native

android - 在一个 react-native 项目中使用 google map 和 FCM

node.js - 谷歌云语音 API 不是从 base64 音频转录

javascript - Restify 和 Angular JS 都位于不同的域中,如何使用 Restify 响应设置 httponly cookie?

javascript - 如何暂停 Javascript MAP 直到 Firebase Firestore 完成? Promise、异步/等待或两者兼而有之