You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:12:10