node.js - 尝试获取 openshift/nodejs 上已安装模块的列表时出错

标签 node.js openshift

尝试使用restify和mongojs模块设置一个托管在openshift上的简单 Node 应用程序。我对应用程序所做的唯一更改是添加

"restify": "latest",
"mongojs": "latest"

到 package.json 中的依赖项部分,然后进行 git Push。

由于我也想设置本地开发/测试环境,因此正在使用 http://openshift.github.io/documentation/oo_cartridge_guide.html#local-development-testing 提供的文档

如文档中所述 - 如果我运行

ssh <uid>@<appname>.rhcloud.com npm list -g

我收到一长串以

结尾的错误
npm WARN unmet dependency /opt/rh/nodejs010/root/usr/lib/node_modules/ws requires options@'latest' but will load 
npm WARN unmet dependency /opt/rh/nodejs010/root/usr/lib/node_modules/options, 
npm WARN unmet dependency which is version 0.0.5 
npm ERR! missing: npm@*, required by undefined@undefined 
npm ERR! missing: openshift-node-web-proxy@*, required by undefined@undefined 
npm ERR! invalid: options@0.0.5 /opt/rh/nodejs010/root/usr/lib/node_modules/options 
npm ERR! not ok code 0

错误正文包含很多错误,例如...

glob error { [Error: EACCES, readdir '/opt/rh/nodejs010/root/usr/lib/node_modules/npm/man/man3/whoami.3']
  errno: 3,
  code: 'EACCES',
  path: '/opt/rh/nodejs010/root/usr/lib/node_modules/npm/man/man3/whoami.3' }
glob error { [Error: EACCES, readdir '/opt/rh/nodejs010/root/usr/lib/node_modules/npm/man/man3/whoami.3']
  errno: 3,
  code: 'EACCES',
  path: '/opt/rh/nodejs010/root/usr/lib/node_modules/npm/man/man3/whoami.3' }

建议的行动方案是什么? 如何修复这些错误? 应用程序是否处于损坏状态?

最佳答案

在 Openshift 上,您不能不应全局安装内容。

使用本地模块,如果您需要运行可执行文件(如咖啡、摩卡、grunt...),请从 node_modules\.bin 文件夹启动它们。

--- 编辑 ---

正如 official documentation 中所述,可以全局安装东西,但不推荐。我想你应该有足够的权利。

the better alternative though is to install them in the home directory of the currently logged user on your local machine/workstation.

如果您确实需要全局的东西,请考虑将它们放入您的购物车中:在不同的虚拟机上进行扩展时会更方便

关于node.js - 尝试获取 openshift/nodejs 上已安装模块的列表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140675/

相关文章:

node.js - 配置 Dockerfile 以设置 AWS 配置

sockets - NodeJS : What is the proper way to handling TCP socket streams ? 我应该使用哪个定界符?

node.js - NodeJS - 响应流

javascript - 使用 Websockets 对 Vue.js/Node.js 应用程序进行单元测试

openshift - 添加Openshift内部结构节点的目的

php - Node js/Express 替代 LAMP

openshift - fabric8 maven 插件配置,图像运行 Java > 8

routes - Openshift 中运行的两个应用程序如何相互发送请求?

ssh - Openshift for Play : The remote end hung up unexpectedly

django - Git - 如何将本地存储库提交到另一个本地存储库的子文件夹?