Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在Heroku上自定义NodeJS部署过程_Node.js_Heroku_Deployment - Fatal编程技术网

Node.js 在Heroku上自定义NodeJS部署过程

Node.js 在Heroku上自定义NodeJS部署过程,node.js,heroku,deployment,Node.js,Heroku,Deployment,我正在构建使用MongoDB并部署到Heroku的NodeJS应用程序。 我正在使用,希望在部署过程中运行migration命令 我该怎么做 我应该放弃构建包还是有更简单的方法?有更简单的方法 当您的应用程序部署到Heroku时,Heroku正在执行npm install-production来安装所有依赖项。完成后,将执行postinstall脚本。您可以在package.json文件中定义安装后脚本。在这个脚本中,您可以运行迁移 下面是我在基于我的项目中使用的一个片段。这将在部署到Herok

我正在构建使用MongoDB并部署到Heroku的NodeJS应用程序。 我正在使用,希望在部署过程中运行migration命令

我该怎么做


我应该放弃构建包还是有更简单的方法?

有更简单的方法

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

下面是我在基于我的项目中使用的一个片段。这将在部署到Heroku时执行grunt构建和grunt发布,否则将执行npm安装

{
  ..

  "scripts": {
    "postinstall": "./node_modules/grunt-cli/bin/grunt build && ./node_modules/grunt-cli/bin/grunt release"
  },

  ..
}
在您的情况下,使用以下值创建postinstall。/node_modules/east/bin/east migrate。这将在Heroku上执行迁移。您应该确保east列在dependencies中,而不是devDependencies中,因为Heroku没有安装devDependencies。您也不能在postinstall脚本中使用任何全局依赖项,因为您的依赖项从未使用默认的buildpack全局安装在Heroku上