尝试使用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' }
建议的行动方案是什么? 如何解决这些错误? 应用程序是否处于损坏状态?
答案 0 :(得分:0)
在Openshift上,你不能不应该全局安装。
使用本地模块,如果您需要运行可执行文件(如coffee,mocha,grunt ......),请从node_modules\.bin
文件夹中启动它们。
---编辑---
如official documentation中所述,可以在全球范围内安装内容,但不建议这样做。我想你应该有足够的权利。
更好的选择是将它们安装在本地计算机/工作站上当前登录用户的主目录中。
如果你真的需要全球的东西,可以考虑将它们放入你的产品中:在不同的虚拟机上进行scalling会更方便