尝试点击命令时: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/