3

我有一个npm-shrinkwrap.json签入的 Node.js 应用程序。当我在npm install本地运行时,它会安装 中指定的版本npm-shrinkwrap.json,但是当我将它推送到 Heroku(在 Cedar 堆栈上)时,它似乎忽略了收缩包装,只是安装了最新版本。

难道我做错了什么?我不需要办理登机手续node_modules,是吗?

4

2 回答 2

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 shrinkwrap​​, 和git add npm-shrinkwrap.json. 然后正常提交。

于 2012-12-12T12:33:38.117 回答
2

事实证明,Heroku 目前使用 npm 1.0.106,但shrinkwrap根据changelog仅在 npm 1.1.2 中添加。

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

于 2012-06-27T12:33:57.020 回答