我创建的运行时依赖使Node.js应用范围的包在我package.json
:
"dependencies": {
"@shawnzhu/mybot" : "latest",
...
},
"engines": {
"npm": ">2.0.0",
"node": "0.10.38"
},
我也有一个自定义的.npmrc
指向范围@shawnzhu
我的私人NPM注册表。
目前,它部署到Heroku的,它升级到故宫时v2.7.x.工程 然而, cf push
到bluemix失败,并在控制台输出显示:
registry "@shawnzhu/mybot" not found.
回顾整个控制台输出之后,我意识到它使用npm
v1.4.28它不支持范围的包。
我怎样才能得到NPM V2.0.0 +在bluemix使Node.js应用程序?
2015年6月15日之前 :这是不可能的使用上Bluemix默认Node.js的buildpack,但。 现在,您可以使用社区开源Node.js的buildpack:
CF推mynodeapp -b https://github.com/cloudfoundry/nodejs-buildpack
你已经正确指定您的package.json故宫的版本,所以它应该为社会buildpack工作。
2015年6月15日之后 :IBM的Node.js Buildpack的最新版本是现在Bluemix可用! 你可以看到在充满变化https://developer.ibm.com/bluemix/2015/06/15/bluemix-node-js-buildpack-update/
这buildpack带有通过在您的package.json的“新公共管理”项,像这样指定NPM版本的功能:
"engines": {
"npm": "xxxxxxx"
},
我也能得到使用节点0.12.2这方面的工作,有以下变化:
在的package.json:
"engines": {
"npm": ">2.0.0",
"node": ">=0.12.0"
},
由于采用了最新Bluemix node.js的默认buildpack的(c.Jun 4,2015),你可以指定一个版本NPM> 2.0.0,它安装一个版本NPM> 2.7,这是要求支持和进口范围的NPM包。 我测试了这一个公开范围的包,这是启动和运行生产Bluemix,使用默认的node.js buildpack。
如果您不想要恢复并使用CF卡社区buildpack,您可以使用“engines.npm”财产,应该让你和运行,即使在节点0.10.x.
在的package.json,指定:
"engines": {
"npm": ">2.0.0",
"node": "0.10.x"
}
我已经编辑这个答案清晰。 非常感谢@shawnzhu征求意见。 希望这可以帮助。