【问题标题】:node module gitignores its own node_modules directory, breaking Heroku deploy节点模块 gitignores 自己的 node_modules 目录,打破 Heroku 部署
【发布时间】:2014-05-27 01:56:11
【问题描述】:

我正在使用aws-sdk 模块,它有一个.gitignore 文件,它忽略了它自己的node_modules 目录,破坏了我的Heroku 部署。

有没有适当的方法来处理这种情况?当我 heroku bash 我看到 aws-sdk 中缺少依赖项时,它没有 node_modules 目录。

【问题讨论】:

  • 您是否将node_modules 作为您的 git 项目的一部分签入?
  • @SomeKittensUx2666 总是这样。我的临时解决方法是从 aws-sdk 模块中删除 .gitignore。似乎很奇怪,这样一个受欢迎的模块在 Heroku 上无法开箱即用......
  • 一般来说,Heroku 上的我们 Nodeists 不会检查 node_modulesnpm shrinkwrap 一样好,而且要小得多)。

标签: node.js git heroku npm


【解决方案1】:

通常,Heroku 会在每次部署后为您运行 npm install,但node_modules 文件夹不存在的情况下。

您有两个主要选择:

  • 停止签入node_modules 并切换到npm shrinkwrap 以保持准确的版本
  • aws-sdk 中删除.gitignore(不推荐,因为您正在修改包)

我建议第一个,因为它允许您保持检查node_modules 提供的功能,而不会丢失任何内容或修改其他包。

【讨论】:

    【解决方案2】:

    假设您在package.json 中将aws-sdk 列为依赖项,那么作为部署脚本一部分的简单npm install 应该会为您处理好它。

    【讨论】:

    • 下次有权限时我会试试这个。我的印象是 Heroku 在每次部署时都会自动安装 npm-installs?
    • 即使有,也只是在根级别进行
    猜你喜欢
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多