npm run 常见脚本

ackage.json 文件中 scripts 部分的脚本是为项目预定义的命令行快捷方式,可以通过 npm run <脚本名称> 来执行,大大简化了开发、构建和管理过程。


总体概览

这些脚本可以分为三大类:

  1. Next.js 核心命令:用于开发、构建和启动应用。

  2. 数据库管理:用于设置和重置数据库。

  3. 日志查看:用于查看不同类型的应用日志。


脚本详解

Next.js 核心命令
  • start

    • 命令: npm run start 或 npm start

    • 执行: next start

    • 作用 : 在生产模式 下启动应用服务器。这个命令必须在运行 npm run build 之后才能使用。它会启动一个经过优化的、用于线上环境的服务器。

  • dev

    • 命令: npm run dev

    • 执行: next dev

    • 作用 : 在开发模式下启动应用。这是开发过程中最常用的命令。它会启动一个开发服务器,提供热重载(Hot-Reloading)、错误提示等功能,让你在修改代码后能立即看到效果。

  • build

    • 命令: npm run build

    • 执行: next build

    • 作用 : 为你的应用创建一个用于生产环境的优化版本。它会进行代码压缩、打包、静态页面生成等优化操作,并将结果输出到 .next 文件夹。部署应用到服务器前必须执行此命令。

  • lint

    • 命令: npm run lint

    • 执行: next lint

    • 作用: 运行代码检查工具(通常是 ESLint),分析代码中潜在的错误、不规范的写法或风格问题,以保证代码质量和团队风格的统一。

数据库管理
  • db:setup

    • 命令: npm run db:setup

    • 执行: node scripts/setup-database.js

    • 作用: 运行一个自定义的 Node.js 脚本来设置数据库。这个脚本通常会执行创建数据表、插入初始数据(seeding)等操作。当你第一次搭建项目环境时会用到它。

  • db:reset

    • 命令: npm run db:reset

    • 执行: echo '请手动清空MySQL数据库表,然后运行 npm run db:setup' && exit 1

    • 作用 : 这是一个安全提示脚本,而不是一个自动化的重置脚本。它不会真的去重置数据库,而是:

      1. 在控制台打印一条消息:"请手动清空MySQL数据库表,然后运行 npm run db:setup"。

      2. exit 1 会让命令以一个错误码退出,表示操作没有"成功"执行。

    • 目的: 防止开发者意外地执行一个命令就清空了所有数据。它强制你必须手动去数据库客户端(如 Navicat, DataGrip 等)清空表,然后再运行 db:setup 来重新初始化。

日志查看

这些脚本都依赖于一个自定义的日志查看工具 scripts/view-logs.js。

  • logs

    • 命令: npm run logs

    • 执行: node scripts/view-logs.js

    • 作用: 查看日志的默认操作。具体行为取决于 view-logs.js 脚本的实现,可能默认是显示最近的几条日志。

  • logs:list

    • 命令: npm run logs:list

    • 执行: node scripts/view-logs.js list

    • 作用: 查看日志列表。list 参数可能会让脚本列出所有可用的日志文件或者对日志进行一个概览。

  • logs:tail

    • 命令: npm run logs:tail

    • 执行: node scripts/view-logs.js tail

    • 作用: 实时跟踪日志。类似于 Linux 命令 tail -f,它会持续监听日志文件的末尾,并将新产生的日志实时输出到控制台。这对于线上调试或观察应用实时动态非常有用。

  • logs:error

    • 命令: npm run logs:error

    • 执行: node scripts/view-logs.js error

    • 作用: 筛选并只显示错误日志。error 参数会告诉脚本过滤掉普通信息(INFO)或调试(DEBUG)级别的日志,只展示错误(ERROR)或警告(WARN)级别的日志,方便快速定位问题。

相关推荐
子兮曰30 分钟前
async/await高级模式:async迭代器、错误边界与并发控制
前端·javascript·github
恋猫de小郭40 分钟前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
GIS之路3 小时前
ArcGIS Pro 中的 Notebooks 入门
前端
IT_陈寒4 小时前
React状态管理终极对决:Redux vs Context API谁更胜一筹?
前端·人工智能·后端
Kagol5 小时前
TinyVue 支持 Skills 啦!现在你可以让 AI 使用 TinyVue 组件搭建项目
前端·agent·ai编程
柳杉5 小时前
从零打造 AI 全球趋势监测大屏
前端·javascript·aigc
simple_lau5 小时前
Cursor配置MasterGo MCP:一键读取设计稿生成高还原度前端代码
前端·javascript·vue.js
睡不着先生5 小时前
如何设计一个真正可扩展的表单生成器?
前端·javascript·vue.js
天蓝色的鱼鱼5 小时前
模块化与组件化:90%的前端开发者都没搞懂的本质区别
前端·架构·代码规范
明君879975 小时前
Flutter 如何给图片添加多行文字水印
前端·flutter