【问题标题】:Skip "Installing dependencies with npm" step when pushing a Node.js app to Heroku将 Node.js 应用推送到 Heroku 时跳过“使用 npm 安装依赖项”步骤
【发布时间】:2012-10-05 05:42:25
【问题描述】:

运行git push heroku master总是会触发一个提示:

使用 npm 安装依赖项

此步骤会再次加载并重新安装所有依赖项,即使它已经存在。这非常耗时,有时我想在部署时跳过这一步,因为我知道依赖项是相同的。

是否有任何命令或选项可以做到这一点?

【问题讨论】:

  • 不幸的是,如果您查看Heroku buildpack for node.js,似乎没有跳过npm install 选项。它始终运行npm install --production,后跟npm rebuild。但是,可以创建您的 own buildpack on heroku,为 npm install 指定不同的行为。

标签: node.js heroku npm


【解决方案1】:

尝试删除

节点模块

例如 来自你的 .gitignore

【讨论】:

    【解决方案2】:

    很久没问这个问题了,现在 Heroku buildpack 缓存了node_modules,所以安装时间会快很多。

    如果您仍然想阻止 npm install,这里有一个解决方案。

    在我写这篇文章时,默认的 Heroku 构建包不允许完全跳过 npm install。你可以在dependencies.sh文件中看到,这行会一直运行:

    npm install --unsafe-perm --userconfig $build_dir/.npmrc 2>&1
    

    但是,如果您在项目文件夹中创建一个名为 .npmrc 的文件,其内容如下:

    dry-run
    

    这将导致 npm install 不会修改您现有的 node_modules 目录。

    请注意,此更改也将适用于 Heroku 运行的 npm prune 命令,但不会适用于 npm rebuild 命令(这可能没问题)。

    【讨论】:

      【解决方案3】:

      我发现的最简单的方法是

      heroku 应用程序:重命名 newTemporaryName

      然后

      heroku 应用程序:重命名 originalName

      或更改 NODE_ENV 并再次将其恢复为以前的状态。

      heroku 配置:设置 NODE_ENV=dev

      然后

      heroku 配置:设置 NODE_ENV=production

      可能还有其他类似的 hack,但这些应该就足够了。

      【讨论】:

        猜你喜欢
        • 2020-01-01
        • 2019-06-15
        • 1970-01-01
        • 2014-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-14
        相关资源
        最近更新 更多