package.json 模板
生成 package.json:name / version / type / license / engines / files 与 scripts 一次配好,勾选 TypeScript、ESLint、Prettier、Vitest、Playwright 会自动补脚本与开发依赖,依赖按名字排序。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
项目信息
工具链
勾选后会补上对应的脚本与开发依赖,手写的同名依赖优先。
依赖
预览
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"type": "module",
"license": "MIT",
"engines": {
"node": ">=20.0.0"
},
"files": [
"dist"
],
"scripts": {
"start": "node dist/index.js",
"dev": "node --watch src/index.ts",
"build": "tsc -p tsconfig.json",
"typecheck": "tsc --noEmit",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write .",
"format:check": "prettier --check ."
},
"dependencies": {
"zod": "^3.23.8"
},
"devDependencies": {
"@types/node": "^22.9.0",
"eslint": "^9.15.0",
"prettier": "^3.3.3",
"typescript": "^5.6.3"
}
}
输出是 2 空格缩进的合法 JSON:字段顺序固定、依赖按名字排序,复制后直接 npm install 即可。
这个工具能做什么
- 新项目第一次初始化时拿到一份字段齐全的 package.json,不用再翻文档确认 engines、files、type 该怎么写。
- 给库项目补发布配置:private、files、license 一次填好,避免把源码或测试文件一起发到 npm。
- 勾选 TypeScript、ESLint、Prettier、Vitest、Playwright 后自动补齐脚本与开发依赖,省掉手写 test:watch、format:check 这类命令。
- 接手别人的仓库时对照生成结果,检查现有 package.json 的字段顺序、依赖版本与脚本命名是否规范。
示例
输入
包名 my-app、版本 0.1.0、ESM、私有包;勾选 TypeScript 与 Vitest;运行依赖 zod@^3.23.8
输出
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"type": "module",
"license": "MIT",
"engines": {
"node": ">=20.0.0"
},
"files": [
"dist"
],
"scripts": {
"start": "node dist/index.js",
"dev": "node --watch src/index.ts",
"build": "tsc -p tsconfig.json",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"test:watch": "vitest"
},
"dependencies": {
"zod": "^3.23.8"
},
"devDependencies": {
"@types/node": "^22.9.0",
"typescript": "^5.6.3",
"vitest": "^2.1.5"
}
}
勾选 TypeScript 后 files 默认是 dist、dev 脚本指向 .ts 源文件;勾选 Vitest 会补 test 与 test:watch,并自动加上 vitest 与 @types/node 依赖。
常见问题
依赖要怎么写?
写成 名字@范围,例如 zod@^3.23.8、@types/node@^22.9.0,一行一个。名字必须是小写;作用域包写成 @scope/name@范围。写错的条目会直接提示,不会生成一份装不上的 package.json。
勾选工具链后,我能用自己的版本吗?
能。生成器只在开发依赖里没有同名包时才补默认版本,所以你自己写 vitest@^3.0.0 就会覆盖内置的 ^2.1.5。同一个包同时出现在运行依赖和开发依赖里会报错,需要自己选一个位置。
private 该不该打开?
内部项目、应用、脚手架都应该保持 private: true,它是防止 npm publish 手滑的最后一道保险。要发布成公开库时再关掉,同时确认 files 只包含 dist 这类构建产物。
engines.node 写了有什么用?
engines 本身只是声明,npm 默认不会因为版本不符就拒绝安装(除非把 engine-strict 打开),但 pnpm、yarn 与大多数 CI 会据此警告或拦截,也是给协作者看的版本要求。默认写 >=20.0.0。
生成的 JSON 一定能被 npm 解析吗?
是。输出是标准 JSON(2 空格缩进、无注释、无尾随逗号),字段顺序固定、依赖按名字排序,包名与版本都按 npm 规则校验过,复制保存后直接 npm install 即可。
关键词:package.jsonpackage.json generatorpackage.json 模板npm initnpm scriptsengines nodedevDependenciesdependenciesnode 项目前端工程化typescript 依赖vitest 脚本