2016-04-15 21 views
3

Ich versuche eine Rails/Angular-App für Heroku bereitzustellen.Bereitstellen einer Gulp-App für Heroku in einem Unterverzeichnis

Teil meiner Verzeichnisstruktur sieht wie folgt aus:

client/package.json 
client/gulpfile.js 

Mein package.json und gulpfile.js sind nicht an der Wurzel; Sie sind in einem Unterverzeichnis.

Das Heroku-Node-Buildpack erwartet natürlich package.json an der Wurzel. Wie kann ich Heroku dazu bringen, meine Gulp/Angular App zu erkennen?

Antwort

1

Sie müssten ein benutzerdefiniertes Buildpack verwenden, um Ihr Frontend zu erstellen: https://devcenter.heroku.com/articles/buildpack-api#composing-multiple-buildpacks. Sie würden dieses benutzerdefinierte Buildpack mit dem Rails-Buildpack erstellen, um eine vollständige Buildfunktion zu erhalten.

Das nodejs buildpack enthält Beispiele, wie man run npm install und load package.json, die hilfreich sein können.

+0

Dank. Ich habe das Node-Buildpack gegabelt und modifiziert, und es scheint zu funktionieren. –

1

Hier ist, wie Sie es ohne eine kundenspezifische buildpack tun können:

  1. den Knoten Heroku hinzufügen buildpack

    heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-nodejs 
    
  2. ein package.json In der Wurzel Ihrer Schienen-Projekt.
  3. hinzufügen postinstall oder ein heroku-postbuild Skript an den Top-Level-package.json wie folgt aus:

    //top-level package.json 
    "scripts": { 
        "postinstall": "cd client && npm install && gulp build" 
    } 
    
  4. hinzufügen Client/node_modules zum Heroku Cache durch diese package.json auf der obersten Ebene hinzufügen:

    //top-level package.json 
    "cacheDirectories": ["client/node_modules"] 
    
  5. Genießen

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

Verwandte Themen