首页 > 解决方案 > npm 错误!EPROTO:协议错误,符号链接 '../@babel/parser/bin/babel-parser.js' -> '/home/vagrant/code/proadco.test/node_modules/.bin/parser'

问题描述

我正在尝试npm install在 Windows 8.1 上的 Git Bash 客户端中执行,但收到​​以下错误:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: minimist@1.2.0 (node_modules/fsevents/node_modules/rc/node_modules/minimist):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, open '/home/vagrant/code/proadco.test/node_modules/fsevents/node_modules/rc/node_modules/minimist/package.json.737544774'

npm ERR! path ../@babel/parser/bin/babel-parser.js
npm ERR! code EPROTO
npm ERR! errno -71
npm ERR! syscall symlink
npm ERR! EPROTO: protocol error, symlink '../@babel/parser/bin/babel-parser.js' -> '/home/vagrant/code/mysite.test/node_modules/.bin/parser'

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/vagrant/.npm/_logs/2019-06-24T02_39_32_641Z-debug.log

运行npm install --no-bin-links允许它成功运行。但我不完全理解这一行动的后果。我相信它是在说“不要创建符号链接。这只是一种 hack,而不是解决问题的根源。但我读过 Windows 不支持符号链接,因此无法解决。

有人可以解释这里的后果是什么吗?以及如何克服符号链接的根本问题?

标签: node.jswindowsnpm

解决方案


对我有用的是以管理员身份并vagrant up从那里启动 Windows 命令提示符。

如果 Vagrant 已经在运行,则需要vagrant suspendvagrant up新启用的管理员命令提示符下运行。

问题是Vagrant 进程需要管理员权限才能创建symlinks.

为了摆脱以前不成功的安装,我运行了npm clean-install. npm run dev仍然会出现一些错误,但ui:auth可以工作。


推荐阅读