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

时间:2019-06-24 02:47:33

标签: node.js windows npm

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

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不支持符号链接,因此无法解决。

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

2 个答案:

答案 0 :(得分:6)

对我有用的是以 Administrator vagrant up的身份启动Windows命令提示符。

问题是,作为主机的Windows需要管理员特权才能创建symlinks

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

答案 1 :(得分:1)

如果您希望npm停止为您创建符号链接,则可以通过

避免这种情况
npm install --no-bin-links

有关npm文档https://docs.npmjs.com/cli/install.html

的更多信息
  

注意:这可能会有一些未知的副作用,此方法有效   适用于我正在处理的应用程序,遇到此问题时   问题。副作用可能与symlink有关,即npm是   尝试创建,并在开发的后期阶段发现   符号链接不可用。