如何在NextJS的package.json中创建自定义脚本实现提交拉取后启动服务?
NextJS 开发前置自定义脚本实现
要实现开发前自动提交本地变更、拉取远程代码再启动服务器的流程,我们可以通过shell脚本+package.json自定义命令完成,具体步骤如下:
1. 创建shell脚本文件
在项目根目录新建dev-prep.sh文件,写入以下内容:
#!/bin/bash # 初始化git仓库(已初始化则无任何影响) git init # 暂存所有本地变更 git add . # 检查是否有可提交的变更 if git diff --cached --quiet; then echo "无本地变更,跳过提交步骤" else # 提示用户输入提交信息,支持直接回车用默认值 read -p "请输入提交信息(直接回车使用默认值): " commit_msg # 若用户未输入内容,使用预设的默认提交信息 commit_msg=${commit_msg:-"开发前置自动提交"} # 执行git提交 git commit -m "$commit_msg" echo "本地变更提交完成" fi # 拉取远程origin的最新代码(默认分支为main,可根据你的实际分支修改) echo "正在拉取远程最新代码..." git pull origin main # 启动NextJS开发服务器 echo "启动开发服务器..." next dev
2. 配置package.json脚本
打开项目根目录的package.json,在scripts字段中添加自定义命令:
{ "scripts": { "dev": "next dev", "dev:prep": "bash dev-prep.sh" } }
3. 脚本使用说明
- 首次使用给脚本添加执行权限(仅需执行一次):
chmod +x dev-prep.sh - 之后每次开发前,执行以下命令即可完成整套流程:
npm run dev:prep
注意事项
- 若使用Windows系统,建议用Git Bash或WSL执行脚本,避免兼容性问题;也可将脚本改为
.bat格式适配Windows环境。 - 脚本默认拉取
origin/main分支,若你的默认分支是master或其他名称,需修改git pull origin main中的分支名。 - 若本地分支与远程分支存在冲突,
git pull会暂停并提示解决冲突,处理完冲突后重新执行脚本即可。
内容的提问来源于stack exchange,提问作者Dayvvo
相关产品推荐
相关产品推荐

