我正在尝试将一个Rails / Angular应用程序部署到Heroku。
我的目录结构的一部分如下所示:
client/package.json
client/gulpfile.js
我的package.json
和gulpfile.js
不在根;他们在子目录中。
Heroku Node buildpack当然希望package.json
位于根目录。如何让Heroku识别我的Gulp / Angular应用程序?
答案 0 :(得分:1)
您需要使用自定义buildpack来构建前端:https://devcenter.heroku.com/articles/buildpack-api#composing-multiple-buildpacks。您将使用Rails buildpack编写此自定义buildpack,以使完整的构建工作。
nodejs
buildpack包含有关如何run npm install
和load package.json
可能有用的示例。
答案 1 :(得分:1)
以下是没有自定义buildpack的方法:
添加节点heroku buildpack
heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-nodejs
将postinstall
或heroku-postbuild
脚本添加到顶级package.json中,如下所示:
//top-level package.json
"scripts": {
"postinstall": "cd client && npm install && gulp build"
}
将client / node_modules添加到Heroku缓存中,方法是将其添加到顶级package.json中:
//top-level package.json
"cacheDirectories": ["client/node_modules"]
享受
来源: https://devcenter.heroku.com/articles/nodejs-support#customizing-the-build-process