如何部署应用程序的NodeJS到bluemix时指定NPM版本?(How to specify np

2019-10-22 23:46发布

我创建的运行时依赖使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应用程序?

Answer 1:

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"
},



Answer 2:

我也能得到使用节点0.12.2这方面的工作,有以下变化:

在的package.json:

  "engines": {
    "npm": ">2.0.0",
    "node": ">=0.12.0"
  },


Answer 3:

由于采用了最新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征求意见。 希望这可以帮助。



文章来源: How to specify npm version when deploying nodejs apps to bluemix?