Npm的错误,而我试图安装依赖环回(strongloop)的Web应用程序

我是NodeJS世界的新手。 我已经创build了一个loopback(strongloop)webapp,但是之后我尝试在应用程序的文件夹中运行npm install命令,我在terminal中得到这个输出(Ubuntu服务器14.04 withd最新更新 – 在一个stream浪的实例中)

 vagrant@vagrant-ubuntu-trusty-64:/vagrant/example-app$ npm install npm WARN package.json example-app@1.0.0 No license field. npm WARN optional dep failed, continuing ycssmin@1.0.1 npm WARN deprecated jsonstream@1.0.3: use JSONStream instead npm WARN optional dep failed, continuing request@2.62.0 npm WARN optional dep failed, continuing loopback-explorer@1.8.0 npm ERR! Linux 3.13.0-62-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! node v4.1.0 npm ERR! npm v2.14.3 npm ERR! path ../node-uuid/bin/uuid npm ERR! code EPROTO npm ERR! errno -71 npm ERR! syscall symlink npm ERR! EPROTO: protocol error, symlink '../node-uuid/bin/uuid' -> '/vagrant/example-app/node_modules/loopback-datasource-juggler/node_modules/.bin/uuid' npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! <https://github.com/npm/npm/issues> npm ERR! Linux 3.13.0-62-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! node v4.1.0 npm ERR! npm v2.14.3 npm ERR! path npm-debug.log.2d5bb41273f18b2da30958b9aa61bfe6 npm ERR! code ETXTBSY npm ERR! errno -26 npm ERR! syscall rename npm ERR! ETXTBSY: text file is busy, rename 'npm-debug.log.2d5bb41273f18b2da30958b9aa61bfe6' -> 'npm-debug.log' npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! <https://github.com/npm/npm/issues> npm ERR! Please include the following file with any support request: npm ERR! /vagrant/example-app/npm-debug.log 

这是由loopback框架生成的生成的package.json

 { "name": "example-app", "version": "1.0.0", "main": "server/server.js", "scripts": { "pretest": "jshint ." }, "dependencies": { "compression": "^1.0.3", "cors": "^2.5.2", "loopback": "^2.22.0", "loopback-boot": "^2.6.5", "loopback-datasource-juggler": "^2.39.0", "serve-favicon": "^2.0.1" }, "optionalDependencies": { "loopback-explorer": "^1.1.0" }, "devDependencies": { "jshint": "^2.5.6" }, "repository": { "type": "", "url": "" }, "description": "example-app" } 

我试图用sudo npm install来运行,但是我得到了完全相同的结果。

版本:

  • 节点v4.1.0
  • Npm v2.14.3
  • stream浪者1.7.4
  • Ubuntu服务器14.04.3(与最新的更新)

这是npm-log文件 ,非常长。

如果你知道我的错误,不要犹豫,只要回答:)

这是Vagrant / VirtualBox的问题。 不幸的是,同步/共享文件系统不支持符号链接。

如果你不需要这个function,最简单的方法就是在Vagrantfile禁用它:

 # ... config.vm.synced_folder ".", "/vagrant", disabled: true # ... 

如果你确实需要它,你可能能够find一个解决scheme,你知道这是一个符号链接支持的问题,npm用来创build箱子:-)

有关更多详细信息,请参阅https://docs.vagrantup.com/v2/synced-folders/basic_usage.html

错误发生,因为您的挂载的共享目录(/ vagrant)是在不支持符号链接的文件系统上。

为了使这个失效,你需要告诉npm你的文件系统不支持符号链接,例如

 npm config set bin-links false 

资料来源: npm在GH-7308无法stream动

或者通过为npm install指定--no-bin-links参数来防止npm为包中可能包含的任何二进制文件创build符号链接。


另一种方法是把它附加到你的package.json文件 ,例如

 "config": { "bin-links": false },