在尝试点击命令时:function loop(begin, end, results) {
setTimeout(() => {
for (var i = begin; i <= end; i++) {
console.log(i);
}
results();
}, Math.random() * 1000)
}
function BeginPromise() {
const p1 = new Promise((resolve, reject) => {
loop(0, 100, resolve)
});
const p2 = new Promise((resolve, reject) => {
loop(110, 200, resolve)
});
const p3 = new Promise((resolve, reject) => {
loop(210, 300, resolve)
});
return Promise.all([p1, p2, p3]).then(() => console.log('done'))
}
注意: 我有Node.Js LTS 10.xx版本,.Net Framework 4.7.2开发人员包以及所有必要的扩展。
引发错误:
npm install -g @angular/cli@6.1.1
日志显示以下内容:
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 :(得分:1)
我遇到了类似的问题,日志如下,
error ELOOP: too many symbolic links encountered, chmod '/Users/myname/projects/my-electron-app/node_modules/electron/cli.js'
error ELOOP: too many symbolic links encountered, open '/Users/myname/projects/my-electron-app/node_modules/electron/npm-shrinkwrap.json'
当我检查我的文件夹并发现文件夹 electron
链接到自身时,它导致了一个永无止境的循环。
lrwxr-xr-x 1 myname staff 8 Feb 20 11:42 electron@ -> electron
我检查了大小并直接删除了文件,然后再次使用了npm install electron
。终于成功了。
所以请检查链接,看起来您的应用程序中的文件也链接到自身。
我怀疑这应该是关于 npm
的问题,因为 npm
试图在实际下载文件之前创建链接。
答案 1 :(得分:0)
您可以在下面自行判断。令人失望的情况是,当您的用户数据存储在具有2,000多个子文件夹的文件夹中时,您可能无法使用NodeJS。 像您一样,我的用户文件夹存储在网络驱动器上,而不是C上: 在“ readGlobalPackageData()”中,将self.where的值传递给readPackageTree。就我而言,self.where =“ \ [域] \ users $ [办公室位置] [userID] \ AppData \ npm。” realpathCached()中的代码正在退出该路径,并尝试读取所有子文件夹。当它到达“ \ [domain] \ users $”时,将记录“ ELOOP”错误,因为最大深度为2000,并且我公司的Users文件夹包含25,000多个子文件夹。
以下是两种可能的解决方案: 首先,从install命令中删除-g,以使安装在本地新应用程序的文件夹中。缺点是,如果其中一个依赖项有更新,则必须在不使用-g的任何地方手动进行安装。如果更新包含重大更改,那会很好。
第二个(我不推荐此解决方案)是编辑安装程序文件之一。安装程序正在读取您的“用户”文件夹中的所有ID文件夹,但失败的原因是达到了任意限制。如果增加限制,该错误应该会消失,但是您还可以让脚本读取网络上的所有用户ID。尝试此操作需要您自担风险。 打开这个文件: C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ read-package-tree \ realpath.js。 在第18行上,“ if(深度> 2000)”将2000更改为大于用户$(共享)文件夹下的文件夹数的数字。
答案 2 :(得分:0)
如经典克雷格的回答
<块引用>您可以在下面自行判断。令人失望的情况是,当您的 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 个子文件夹。
我也无法在公司大型机上的用户文件夹中全局安装 Angular。我通过在本地安装来解决这个问题。
首先我用
初始化安装位置npm init
然后转到 node_modules 中的目录,我访问了 .bin 文件夹
cd ../node_modules/.bin
ng 命令可以在 .bin 文件夹中运行。然后我使用 ng new 在 .bin 文件夹中创建一个新项目。然后,我可以使用
npm run ng <command>
这里。所以我可以在项目文件夹中使用 ng 命令。