package.json 的 scripts 字段是定义命令别名的对象,用于简化开发流程;它自动将 node_modules/.bin 加入 PATH,支持 Shell 语法组合命令,并需注意跨平台兼容性与 JSON 无注释等限制。

在 JS 项目中,package.json 的 scripts 字段是自定义开发和构建流程最常用、最直接的方式。它本质是一组命令别名,让你用简短的命令(如 npm run dev)代替冗长、易错的原始命令。
scripts 是什么,为什么需要它
scripts 是一个对象,每个键是自定义脚本名,值是真正要执行的 Shell 命令。npm 执行时会自动把 node_modules/.bin 加入环境变量 PATH,所以你无需写完整路径就能调用本地安装的 CLI 工具(比如 vite、esbuild、eslint)。
例如,不配 scripts 时你得手动输入:
node_modules/.bin/vite --mode development
配好后只需:
npm run dev
常用开发与打包脚本怎么写
典型前端项目一般包含以下几类核心脚本:
-
开发服务:启动本地服务器,支持热更新
"dev": "vite"或"dev": "vite --config vite.config.js --mode dev" -
生产构建:生成压缩后的静态资源
"build": "vite build"或"build": "webpack --mode production" -
预览构建结果:启动一个轻量 HTTP 服务查看打包效果
"preview": "vite preview" -
代码检查:运行 ESLint 或 TypeScript 类型检查
"lint": "eslint . --ext .js,.vue --fix""type-check": "tsc --noEmit"
进阶技巧:组合与复用命令
scripts 支持 Shell 语法,可以串联、并行或条件执行:
- 顺序执行(用
&&):"build:clean": "rm -rf dist && vite build"(Linux/macOS)"build:clean": "rimraf dist && vite build"(Windows 兼容,需装rimraf) - 并行执行(用
&):"dev:all": "vite & json-server db.json" - 跨平台兼容写法:优先使用 cross-env 设置环境变量
"dev:staging": "cross-env NODE_ENV=staging vite"
注意事项和常见坑
写 scripts 时要注意几个关键点:
- JSON 格式不允许注释,所有说明必须写在 README 或单独文档里
- Windows CMD 对某些符号(如
&&、$)支持有限,建议搭配cross-env或改用 PowerShell / Git Bash - 脚本名是任意的,但约定俗成有标准名称:
start(npm start可省略run)、test、build、lint等 - 如果脚本依赖全局工具(如
prettier),应改为本地安装并调用npx prettier或确保已加入devDependencies











