摘要
正在生成中……
由于我当前的cloudflare pages
项目并没有在cloudflare
里配置与github
仓库关联,就需要我手动执行npm run deploy
将编译后的代码上传到cloudflare
,但这也没什么,小项目的编译很快。
问题在于我想在执行git push到github前后不想再手动敲npm run deploy
了。
设置方法也是有的,就是利用Git 的钩子。
可以通过 Git hooks 来实现这个需求。具体来说,可以使用 post-push
或 pre-push
钩子在执行 git push
的过程中运行 npm run deploy
。不过,Git 默认没有 post-push
钩子,但你可以借助一些其他方式来实现。
方法 1: 使用 pre-push
钩子
-
进入项目的 .git/hooks
目录
每个 Git 仓库都有一个 .git/hooks
文件夹,里面包含各种 Git 钩子的示例文件。
-
创建/修改 pre-push
钩子
在 .git/hooks
目录中创建一个名为 pre-push
的文件(如果文件已存在,就直接编辑它)。
-
在 pre-push
文件中添加如下脚本:
#!/bin/sh
npm run deploy
-
保存并给予执行权限:
chmod +x .git/hooks/pre-push
每次运行 git push
时,Git 会在 push 之前先执行 npm run deploy
。
方法 2: 使用 post-push
实现
Git 默认没有 post-push
钩子,但你可以通过以下方式模拟 post-push
:
-
创建一个自定义命令
你可以创建一个 Git alias,执行 git push
之后再自动执行 npm run deploy
。
运行以下命令将自定义命令添加到 Git 中:
git config alias.push-and-deploy '!git push && npm run deploy'
-
使用新命令推送代码:
之后你可以运行 git push-and-deploy
来推送代码并执行部署。
这两种方法都可以实现你在 git push
的过程中自动执行 npm run deploy
的需求。
目前使用方法 1 。