npm-scripts 是一份围绕 npm、yarn 与 pnpm 的包管理与脚本技能资料,内容以配置示例和命令清单为主,覆盖从日常脚本编写到包发布、monorepo 管理的完整流程。
一、用途 该技能用于处理 JavaScript/Node.js 项目的包管理与脚本相关任务,典型触发场景包括:运行 npm 脚本、配置 package.json、发布包、管理依赖、搭建工作区(monorepo)等。
二、主要能力
- package.json 脚本:提供常见脚本模式示例,如 dev、build、start、test、test:watch、test:coverage、lint、lint:fix、format、format:check、typecheck、clean、prepare、validate 等。
- 生命周期脚本:说明 pre/post 钩子机制,以及 prepare、prepublishOnly、preinstall/postinstall、prepack/postpack 等内置生命周期脚本的触发时机。
- 跨平台脚本:借助 cross-env、shx、npm-run-all2 等工具编写跨平台脚本,支持 run-s(顺序)与 run-p(并行),并支持 glob 模式(如 run-p lint:*)。
- 环境变量:通过 cross-env 在脚本中设置环境变量,并说明 npm 暴露的 npm_package_* 字段。
- npx 与 bunx:无需安装即可运行包,或指定包、运行本地二进制。
- 依赖管理:安装、指定版本、从 GitHub 安装、npm ci、outdated、update、npm-check-updates、dedupe、why、ls、audit 等命令。
- overrides/resolutions:强制传递依赖版本,npm 用 overrides,yarn 用 resolutions,pnpm 用 pnpm.overrides。
- 锁文件:强调始终提交锁文件,npm ci、pnpm install --frozen-lockfile、yarn install --immutable 等确定性安装方式。
- .npmrc 配置:区分项目级与用户级配置,包含 registry、作用域 registry、engine-strict、认证 token 等。
- 自定义 registry:Verdaccio 本地/私有 registry 与 GitHub Packages 的配置方式。
- 工作区(monorepo):workspaces 配置、按工作区运行命令、跨工作区运行、添加依赖、根脚本示例,以及 npm 的依赖提升行为。
- pnpm 与 yarn:各自的安装、添加依赖、dlx、工作区过滤与递归运行命令。
- 发布:包字段配置(main、module、types、exports、files、publishConfig)、publish、dry-run、pack、provenance、version 版本升级及 preversion/version/postversion 钩子。
- 脚本调试:--verbose、--silent、列出脚本、node --inspect-brk、NODE_OPTIONS、DEBUG、NODE_DEBUG 等。
- 安全:npm audit、audit-level、audit signatures、npm ci 校验、provenance、Socket 供应链报告,以及最佳实践建议。
- 快速参考:init、cache clean、config list、exec、link、repo、docs、view 等常用命令。
三、使用方式 资料以配置片段和命令行示例呈现,用户可按需复制到 package.json、.npmrc 或终端中执行。例如脚本定义写入 scripts 字段,registry 与认证写入 .npmrc,工作区配置写入 package.json 的 workspaces 或 pnpm-workspace.yaml。
四、适用场景 适用于 Node.js 项目的日常开发脚本管理、CI 中的确定性安装与审计、私有包发布、多包仓库(monorepo)协作,以及 npm/yarn/pnpm 之间的迁移与对照。
五、限制 资料未提供该技能的具体安装方式、运行环境要求、收费信息或效果说明,这些内容暂未提供。