node.js - 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 不支持符号链接,因此无法解决。
有人可以解释这里的后果是什么吗?以及如何克服符号链接的根本问题?
解决方案
对我有用的是以管理员身份并vagrant up
从那里启动 Windows 命令提示符。
如果 Vagrant 已经在运行,则需要vagrant suspend
在vagrant up
新启用的管理员命令提示符下运行。
问题是Vagrant 进程需要管理员权限才能创建symlinks
.
为了摆脱以前不成功的安装,我运行了npm clean-install
. npm run dev
仍然会出现一些错误,但ui:auth
可以工作。
推荐阅读
- c# - 组合框丢失文本并镜像显示
- php - 正则表达式查找后跟点的所有数字
- javascript - RFC822 正则表达式无法拒绝 JavaScript 中的某些电子邮件地址
- versioning - -next 在语义版本控制中的含义
- c++ - 自定义 std::ostream 子类中的运算符 << 重载的歧义错误
- angular - Angular - 在按下选项卡时动态添加一组字段
- javascript - 在 JavaScript 中使用 Asp.Net WebForms 上的资源本地化文本
- latex - 无法使用 TeXStudio 编译 Minted 环境
- java - 使用 VLCj 和 Java Swing 冻结/延迟图像
- r - 获取包含特征的文档百分比 - quanteda