node.js - 当我尝试在环回 (strongloop) web 应用程序中安装依赖项时出现 Npm 错误

标签 node.js npm loopbackjs strongloop

我是 NodeJS 世界的新手。我创建了一个环回(strongloop)web应用程序,但在它之后我尝试在应用程序的文件夹中运行npm install命令,我在终端中得到了这个输出(Ubuntu服务器14.04与最新的更新 - 在一个流浪者中)实例)

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

这是由环回框架生成的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 运行,但得到了完全相同的结果。

版本:

  • Node v4.1.0
  • Npm v2.14.3
  • 流浪者1.7.4
  • Ubuntu Server 14.04.3(包含最新更新)

这是npm-log file ,很长。

如果您知道我的错误,请不要犹豫,直接回答:)

最佳答案

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

如果您不需要此功能,最简单的方法就是在您的 Vagrantfile 中禁用它:

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

如果您确实需要它,现在您可能可以找到解决方法,因为您知道这是符号链接(symbolic link)支持的问题,npm 使用符号链接(symbolic link)支持来创建 bin :-)

参见https://docs.vagrantup.com/v2/synced-folders/basic_usage.html了解更多详情。

关于node.js - 当我尝试在环回 (strongloop) web 应用程序中安装依赖项时出现 Npm 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32666983/

相关文章:

node.js - 找不到绑定(bind)文件。在 Electron 环境中使用串行端口时尝试过

node.js - 无法使用 express 处理 node.js 域的异常

javascript - Appium代码生成 "SyntaxError: await is only valid in async function"

node.js - 如何使用 npm 脚本获取 shell 脚本?

javascript - 环回地理点 Hook 未持久更改

javascript - 为什么 [] + [] 返回一个空字符串?

npm - npm 运行脚本中参数的 if-else

node.js - 在环回nodejs中搜索api

reactjs - 结合基于 NodeJS 的 Passport 身份验证和 ReactJS 前端

node.js - 一些将 DynamoDB 与 Node.js 结合使用的问题