试图获取openshift / nodejs上已安装模块列表的错误

时间:2014-03-03 07:07:49

标签: node.js openshift

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

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

到package.json中的dependencies部分,然后是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' }

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

1 个答案:

答案 0 :(得分:0)

在Openshift上,你不能不应该全局安装。

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

---编辑---

official documentation中所述,可以在全球范围内安装内容,但不建议这样做。我想你应该有足够的权利。

  

更好的选择是将它们安装在本地计算机/工作站上当前登录用户的主目录中。

如果你真的需要全球的东西,可以考虑将它们放入你的产品中:在不同的虚拟机上进行scalling会更方便