Heroku不尊重npm-shrinkwrap.json

时间:2012-06-27 12:06:56

标签: node.js heroku npm

我有一个已注册npm-shrinkwrap.json的Node.js应用。当我在本地运行npm install时,它会安装npm-shrinkwrap.json中指定的版本,但是当我将其推送到Heroku时(在它似乎忽略了收缩包装,只是安装了最新的版本。

我做错了吗?我无需办理登机手续node_modules,是吗?

2 个答案:

答案 0 :(得分:5)

正如你在答案中所说,当Heroku编写Nodejs buildpack时,功能npm shrinkwrap不存在。

但是,从版本1.1.2开始,npm install首先尝试npm-shrinkwrap.json,然后再回到package.json。这意味着Heroku尊重它(即使Heroku编写代码时没有构思该功能)。艾萨克斯很棒。

所以只需添加到package.json

"engines": {
  "node": "0.8.x",
  "npm": ">=1.1.2"
}

然后运行npm shrinkwrapgit add npm-shrinkwrap.json。然后正常提交。

答案 1 :(得分:2)

事实证明,Heroku现在使用npm 1.0.106,但根据changelogshrinkwrap仅在npm 1.1.2中添加。

添加node_modules解决了我的问题,直到Heroku升级他们的npm。