【问题标题】:Heroku does not respect npm-shrinkwrap.jsonHeroku 不尊重 npm-shrinkwrap.json
【发布时间】:2012-06-28 20:40:34
【问题描述】:

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

我做错了吗?我不需要签到node_modules,对吗?

【问题讨论】:

    标签: node.js heroku npm


    【解决方案1】:

    正如您在回答中所说,当 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。然后正常提交。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 2017-10-30
      • 2020-08-08
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      相关资源
      最近更新 更多