在将nodejs应用程序部署到bluemix时如何指定npm版本?

sha*_*zhu 1 node.js npm ibm-cloud

我创建的运行时依赖使Node.js应用范围的包在我的package.json:

"dependencies": {
    "@shawnzhu/mybot" : "latest",
    ...
},
"engines": {
    "npm": ">2.0.0",
    "node": "0.10.38"
},
Run Code Online (Sandbox Code Playgroud)

我也有一个自定义.npmrc指向@shawnzhu我的私人npm注册表的范围.

目前它在部署到heroku时可以工作,它将npm升级到v2.7.x. 但是,a cf pushto bluemix失败,控制台输出显示:

registry "@shawnzhu/mybot" not found.
Run Code Online (Sandbox Code Playgroud)

在查看整个控制台输出后,我意识到它使用npmv1.4.28,它不支持作用域包.

如何在bluemix的node.js应用程序中获取npm v2.0.0 +?

Sai*_*nam 5

在2015年6月15日之前:使用Bluemix上的默认Node.js buildpack是不可能的.现在,您可以使用社区开源Node.js buildpack:

cf push mynodeapp -b https://github.com/cloudfoundry/nodejs-buildpack

您已正确地在package.json中指定了npm版本,因此它应该适用于社区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"条目来指定NPM版本,如下所示:

"engines": {
    "npm": "xxxxxxx"
},
Run Code Online (Sandbox Code Playgroud)