当前位置: 首页 > news >正文

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)级别的日志,方便快速定位问题。

http://www.xdnf.cn/news/1259803.html

相关文章:

  • HarmonyOS SDK助力讯飞听见App能力建设
  • Java技术栈/面试题合集(21)-Docker篇
  • 仅需8W,无人机巡检系统落地 AI 低空智慧城市!可源码交付
  • ADB打印设备日志相关
  • WWDC 25 玻璃态星际联盟:SwiftUI 视图协同“防御协议”
  • 深入理解 robots.txt:网站与搜索引擎的 “沟通协议”
  • Linux文档压缩打包与安装
  • zookeeper3.8.4安装以及客户端C++api编译
  • 天翼云与飞轮科技达成战略合作,共筑云数融合新生态
  • 2025 蓝桥杯C/C++国B 部分题解
  • 【Mybatis入门】配置Mybatis(IDEA)
  • LabVIEW多循环架构
  • [深度学习] 大模型学习4-RAG技术全景解析
  • 机械学习--k-means
  • K-Means 聚类
  • SonarQube 扫描多个微服务模块
  • 二、k8s 1.29 之 网络
  • MySQL definer does not exist 问题分析
  • 计算机网络:到底什么是可变长子网掩码VLSM?
  • 自适应反步控制:理论与设计
  • 【洛谷题单】--分支结构(二)
  • 脚本统计MongoDB集合结构信息
  • CSS BFC
  • 接口返回504 Gateway Time-out 错误,这意味着请求在网关或代理服务器等待上游服务器响应时超时。以下是可能的原因和排查建议:
  • provide 和 inject 最佳实践
  • 前端单元测试最佳实践(一)
  • webrtc弱网-EncodeUsageResource类源码分析及算法原理
  • Web 图像捕获革命:ImageCapture API 全面解析与实战指南
  • HTML 与 CSS:从 “认识标签” 到 “美化页面” 的入门指南
  • 解决苍穹外卖项目中 MyBatis - Plus 版本冲突问题