(git)将更改推送到开发服务器并让它自动重启Node应用程序的最佳方法是什么?

tim*_*bur 2 git node.js

以前和我的本地机器上,我一直在使用nodemon哪个手表对Node应用程序进行更改,并在每次更改时重新加载.但是在我自己的机器上运行开发服务器已不再可行,所以我在指定的开发服务器上为应用程序设置了git.

之前,我更喜欢Sublime Text,因此通过终端在开发服务器上编辑文件与我的工作流程不匹配,而且我喜欢默认情况下在本地计算机上拥有所有内容的副本.我也检查了rsync,但我喜欢git提供的细粒度版本控件.

那么如何在本地编辑文件,将git push它们编辑到开发服务器,并在每次推送后自动重新加载Node应用程序?

jha*_*Pac 6

你可以写一个服务器端钩子.在.git目录中有一个钩子目录.只需cd到.git/hooks.在那里,您可以用您需要的任何语言编写脚本.基本上在您推送它之后将运行您告诉它的脚本.这里有关于git hooks的更多信息

https://git-scm.com/book/es/v2/Customizing-Git-Git-Hooks

快速教程使这项工作:

  1. 在开发服务器上,浏览/home/dev-user/Node和初始化的裸库/home/dev-user/Node/example.git使用git init --bare example.git.

  2. 将存储库克隆到/home/dev-user/Node/example使用中git clone example.git.

  3. 文件添加到/home/dev-user/Node/example必要的,然后git add .git commit -m "init"最后git push origin master将这些文件推送到example.git.

  4. 编辑或创建/home/dev-user/Node/example.git/hooks/post-receive并添加以下行: GIT_WORK_TREE=/home/dev-user/Node/example/ git checkout -f

    这将在/home/dev-user/Node/example/推送的任何更改时自动更新文件/home/dev-user/Node/example.git.

  5. 如果您尚未nodemon安装,请安装它npm install -g nodemon.你可能不得不使用sudo.

  6. 假设您的主节点应用程序位于/home/dev-user/Node/example/app.js,使用nodemon /home/dev-user/Node/example/app.js(或者如果您已经在内部/home/dev-user/Node/example,nodemon app.js当然是启动应用程序).

  7. 在本地计算机上,导航到/home/timbur/Node并假设您能够通过SSH自动连接到服务器,使用克隆裸存储库git clone dev-user@dev.server.ip.address:Node/example.git.你现在可以拥有一切/home/timbur/Node/example.

  8. 编辑本地计算机上的文件并像往常一样将/ commit/push文件添加到开发服务器,更改将自动更新服务器的example目录,该目录nodemon将检测并重新启动应用程序.