如何快速将 Node.js 应用部署到 Heroku
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
本教程将介绍如何将 Node.js 项目部署到 Heroku 云应用平台。我们将通过运行几个命令来启动应用程序。
假设您已经有一个想要发布的 Node.js 应用。如果没有,我已在本教程中列出了步骤。您也可以在这里找到对应的 CodeSandbox 示例,用于搭建基本应用。
先决条件
-
Git
- 要使用 Huroku CLI,我们需要在机器上安装 Git,所以请确保您已安装 Git。
您可以使用以下命令检查它是否已安装或未安装:
$ git --version
git version 2.18.0.windows.1
- 节点 8+
$ node --version
v8.12.0
- 在https://heroku.com注册一个账户
- 如果您尚未注册并验证您的电子邮件地址,请先注册并验证。
初始化项目的 Git(如果尚未初始化)
如果你的项目本身就是 Git 仓库,那么请转到Heroku 进行安装。
$ git init
Initialized empty Git repository in your-project-path/.git/
创建一个.gitignore要忽略的文件node_modules
$ echo node_modules > .gitignore
将文件提交到 Git 仓库
$ git add -A
$ git commit -m 'initial commit'
[master (root-commit) e79168d] initial commit
4 files changed, 2047 insertions(+)
create mode 100644 .gitignore
create mode 100644 index.js
create mode 100644 package.json
create mode 100644 yarn.lock
安装 Heroku
根据您的平台下载并安装 Heroku CLI。
通过检查版本号来确认是否已安装。
$ heroku --version
heroku/7.24.3 win32-x64 node-v11.14.0
登录 Heroku
heroku login该命令会提示我们按任意键打开浏览器。然后你就可以在浏览器中登录,终端会接收到登录信息。是不是很酷!
$ heroku login
heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/auth/browser/06c81181-c988-457f-b415-5789e7abd758
Logging in... done
Logged in as 3sanket3@gmail.com
创建一个 Heroku 应用
使用命令创建应用程序heroku create <optional-app-name>
$ heroku create nodejs-tutorial-one-3sanket3
Creating ⬢ nodejs-tutorial-one-3sanket3... done
https://nodejs-tutorial-one-3sanket3.herokuapp.com/ | https://git.heroku.com/nodejs-tutorial-one-3sanket3.git
确保package.json你的项目包含一个start命令
...
"scripts": {
"dev": "nodemon index.js", <-- for local development purpose
"start": "node .", <-- Heroku will use to start the application
"test": "echo \"Error: no test specified\" && exit 1"
},
...
注意:如果您想将
start命令用于其他任务,您可以创建一个Procfile。它将告诉 Heroku 在启动应用程序时要运行哪个命令,如这里所述。
部署代码
$ git push heroku master
如果一切顺利,您应该会看到如下所示的命令输出的最后一部分。其中包含您的应用程序部署的 URL。
检查部署日志
您可以使用heroku logs --tail命令查看部署日志。日志会实时更新,因此您可以在部署过程中保持日志打开,并在另一个终端标签页/窗口中密切关注。
参考:https
://devcenter.heroku.com/articles/getting-started-with-nodejs 封面照片由Rakicevic Nenad 提供,来自 Pexels