【问题标题】:Deploying a Gulp app to Heroku in a subdirectory将 Gulp 应用程序部署到 Heroku 的子目录中
【发布时间】:2017-06-20 10:19:56
【问题描述】:

我正在尝试将 Rails/Angular 应用程序部署到 Heroku。

我的部分目录结构如下所示:

client/package.json
client/gulpfile.js

我的package.jsongulpfile.js 不在根目录;它们位于子目录中。

Heroku Node buildpack 当然希望package.json 位于根目录。如何让 Heroku 识别我的 Gulp/Angular 应用程序?

【问题讨论】:

    标签: node.js heroku gulp


    【解决方案1】:

    在没有自定义 buildpack 的情况下,您可以这样做:

    1. 添加节点heroku buildpack

      heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-nodejs
      
    2. 将 package.json 添加到 Rails 项目的根目录。
    3. postinstallheroku-postbuild 脚本添加到顶级package.json,如下所示:

      //top-level package.json
      "scripts": {
        "postinstall": "cd client && npm install && gulp build"
      }
      
    4. 将 client/node_modules 添加到 Heroku 缓存中,方法是将其添加到顶级 package.json:

      //top-level package.json
      "cacheDirectories": ["client/node_modules"] 
      
    5. 享受

    来源: https://devcenter.heroku.com/articles/nodejs-support#customizing-the-build-process

    【讨论】:

      【解决方案2】:

      您需要使用自定义构建包来构建前端:https://devcenter.heroku.com/articles/buildpack-api#composing-multiple-buildpacks。您可以使用 Rails buildpack 组合此自定义 buildpack 以使完整的构建正常工作。

      nodejs buildpack 包含有关如何使用 run npm installload package.json 的示例,这可能会有所帮助。

      【讨论】:

      • 谢谢。我最终分叉和修改了 Node buildpack,它似乎奏效了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 2017-05-24
      • 2012-07-16
      • 2019-08-08
      • 2015-10-03
      相关资源
      最近更新 更多