在Heroku上自定义NodeJS部署过程

时间:2014-11-12 14:32:17

标签: node.js heroku deployment

我正在构建使用MongoDB并部署到Heroku的NodeJS应用程序 我正在使用east migration library,我想在部署过程中运行迁移命令。

我该怎么做?

我应该分包构建包还是更方便?

1 个答案:

答案 0 :(得分:0)

有一种更简单的方法。

当您的应用程序部署到Heroku时,Heroku正在执行int function()以安装所有依赖项。完成后,将执行npm install --production脚本。您可以在postinstall文件中定义postinstall脚本。在此脚本中,您可以运行迁移。

以下是我在基于Node on Fire的项目中使用的片段。这将在部署到Heroku时执行package.jsongrunt build(否则执行grunt release。)

npm install

在您的情况下,使用以下值{ .. "scripts": { "postinstall": "./node_modules/grunt-cli/bin/grunt build && ./node_modules/grunt-cli/bin/grunt release" }, .. } 创建postinstall。这应该在Heroku上执行您的迁移。您应该确保./node_modules/east/bin/east migrate中列出了east,而不是dependencies,因为Heroku没有安装devDependencies。您也不能在devDependencies脚本中使用任何全局依赖项,因为您的依赖项永远不会全局安装在Heroku上(使用默认的buildpack)。