【问题标题】:EPROTO: protocol error, symlink '../semver/bin/semver' when using ember newEPROTO:协议错误,使用 ember new 时符号链接“../semver/bin/semver”
【发布时间】:2020-01-30 16:20:06
【问题描述】:

我有一个使用 ubuntu/trusty64 框创建的 Vagrant 虚拟机(它运行 Ubuntu 14.04.3 LTS(GNU/Linux 3.13.0-66-generic x86_64))和 Ruby on Rails、Node.js(5.x、但之前是 0.12) 和 Ember CLI。

我正在尝试通过运行 ember new frontend 创建一个新的 Ember 应用程序,但它总是给我一些错误:

Successfully initialized git.
Installing packages for tooling via npm...
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/underscore.string/2.3.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/acorn/1.2.2/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/npm/2.14.10/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/bower/1.7.0/package.tgz
EPROTO: protocol error, symlink '../semver/bin/semver' -> '/vagrant/emberrails/frontend/node_modules/ember-cli-dependency-checker/node_modules/.bin/semver'
Error: EPROTO: protocol error, symlink '../semver/bin/semver' -> '/vagrant/emberrails/frontend/node_modules/ember-cli-dependency-checker/node_modules/.bin/semver'
    at Error (native)

为什么?我该如何解决这个问题?

当我尝试自己通过 NPM 安装一些软件包时会出现此问题,但随后我将 --no-bin-links 添加到命令中,一切都很好,但我在 ember new 上没有此选项.

【问题讨论】:

    标签: node.js ubuntu ember.js vagrant


    【解决方案1】:
     --no-bin-links
    

    --no-bin-links 告诉 npm 不要创建任何符号链接。

    【讨论】:

    • npm config set bin-links false 为我解决了问题。在 Windows 上以 vagrant 运行。
    【解决方案2】:

    我的 windows 框上的符号链接失败的原因是需要管理员权限。在 Windows 上需要以管理员身份启动 virtualbox 以创建符号链接,并且需要从提升的命令提示符运行 vagrant [https://docs.vagrantup.com/v2/virtualbox/common-issues.html](in order 与 virtualbox 交互)

    过去的解决办法是

    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
    

    但这不应该是必要的,因为 this is the default behavior of virtualbox 从 v1.1 开始。

    【讨论】:

      【解决方案3】:

      如果您使用 VirtualBox 作为 vagrant 的提供者,您可以将以下内容添加到您的 Vagrantfile

      config.vm.provider "virtualbox" do |v|
          v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
      end
      

      【讨论】:

      • 我的 Vagrantfile 中已经有了这个,但问题仍然存在。
      猜你喜欢
      • 2019-11-05
      • 2016-01-16
      • 2021-06-02
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 2016-12-16
      相关资源
      最近更新 更多