Heroku - 在开发或生产中部署
Heroku - Deploy in Dev or Production
我有一个 express API,我在 Heroku 上托管。我创建了两个项目:一个项目指向我的 Master 分支 (Prod),另一个指向我的 Development 分支 (Dev)。
我的包中有两个脚本 JSON:
"scripts": {
"devStart": "export NODE_ENV=development && nodemon server.js",
"start": "export NODE_ENV=production && node server.js"
}
如何才能让开发分支运行“DevStart”而Master运行“start”。目前 Prod 工作正常,因为 node start
是默认脚本。
我知道我可以在我的 procfile
中放置命令,但是由于 Dev 和 Prod 使用相同的代码库,我需要在每次提交时更改它。有动态的方法来做到这一点吗?
好的,这可能不是正确的方法,但我是这样做的。
我看到您可以使用终端为 Heroku 应用程序设置 NODE_ENV 变量:
heroku config:set NODE_ENV=development --app {app-name}
我的包 JSON 虽然在部署应用程序时覆盖了它。
"scripts": {
"devStart": "export NODE_ENV=development && nodemon server.js",
"start": "export NODE_ENV=production && node server.js"
},
我改成了:
"scripts": {
"localStart": "export NODE_ENV=development && nodemon server.js",
"start": "node server.js"
},
这现在解决了问题。无需 Procfile
或在 Heroku 中设置环境变量。
在 Heroku 上我有两个应用程序,一个用于生产,我不更改 NODE_ENV 变量,因为它默认为生产,另一个用于开发,我确实更改了 NODE_ENV 变量至 'Development'.
每个应用程序都连接到同一代码库中的不同分支(开发(开发)和大师(生产))。对任一分支的任何部署都将导致使用每个分支的正确 NODE_ENV 变量进行重建。
我有一个 express API,我在 Heroku 上托管。我创建了两个项目:一个项目指向我的 Master 分支 (Prod),另一个指向我的 Development 分支 (Dev)。
我的包中有两个脚本 JSON:
"scripts": {
"devStart": "export NODE_ENV=development && nodemon server.js",
"start": "export NODE_ENV=production && node server.js"
}
如何才能让开发分支运行“DevStart”而Master运行“start”。目前 Prod 工作正常,因为 node start
是默认脚本。
我知道我可以在我的 procfile
中放置命令,但是由于 Dev 和 Prod 使用相同的代码库,我需要在每次提交时更改它。有动态的方法来做到这一点吗?
好的,这可能不是正确的方法,但我是这样做的。
我看到您可以使用终端为 Heroku 应用程序设置 NODE_ENV 变量:
heroku config:set NODE_ENV=development --app {app-name}
我的包 JSON 虽然在部署应用程序时覆盖了它。
"scripts": {
"devStart": "export NODE_ENV=development && nodemon server.js",
"start": "export NODE_ENV=production && node server.js"
},
我改成了:
"scripts": {
"localStart": "export NODE_ENV=development && nodemon server.js",
"start": "node server.js"
},
这现在解决了问题。无需 Procfile
或在 Heroku 中设置环境变量。
在 Heroku 上我有两个应用程序,一个用于生产,我不更改 NODE_ENV 变量,因为它默认为生产,另一个用于开发,我确实更改了 NODE_ENV 变量至 'Development'.
每个应用程序都连接到同一代码库中的不同分支(开发(开发)和大师(生产))。对任一分支的任何部署都将导致使用每个分支的正确 NODE_ENV 变量进行重建。