package.json 生成器

package.json
下一步

无需运行 npm init 并回答十一个提示问题,只需填写表格即可获得格式规范、结构完整的 package.json 文件。该生成器涵盖了所有必填字段(名称、版本)、常用字段(脚本、依赖项、开发依赖项、引擎)以及关键信息(代码仓库、错误记录、关键词、许可证),确保软件包具备可发现性和可发布的特性。

如何生成您的 package.json 文件

  1. 1

    输入名称和版本

    名称需遵循 npm 规则:使用小写字母、支持 URL 长度限制且长度不超过 214 个字符。版本号采用 semver 格式(例如 0.1.0)。

  2. 2

    选择模块类型

    CommonJS(默认)或通过“type”:“module”参数 ESM 。此设置适用于Node.js 14及以上版本项目。

  3. 3

    添加脚本

    启动、构建、测试、代码检查,这些命令均通过 `npm run <name>` 运行。

  4. 4

    列表依赖项

    运行时包位于依赖项中;开发工具则位于开发依赖项中。

  5. 5

    设置元数据

    描述、作者、许可证、存储库网址、关键词。

  6. 6

    复制输出内容

    将内容粘贴到项目根目录下的新 package.json 文件中。

最为重要的字段

字段 必填? 备注
name 小写字符,长度为 1–214 个字符,适用于 URL
version Semver(主要版本号.次要版本号.修订版)
type 用于 ESM 时填 “module”;CommonJS 则省略
main 推荐使用 CommonJS 的入口点(index.js
exports 推荐版 双 CJS / ESM 的现代出口地图
scripts 强烈推荐 npm run <name> 命令
dependencies 根据需要 运行时包
devDependencies 根据需要 构建工具、测试运行器、代码检查工具
engines 有则更好 所需 Node 版本范围
license 适用于发布 类似于 MITApache-2.0 的 SPDX 标识符

Semver 轻松备考指南

  • 1.0.0,major.minor.patch
  • ^1.0.0,兼容 1.x.x 版本(≥1.0.0,<2.0.0)
  • ~1.0.0,仅适用于补丁更新(版本号 ≥ 1.0.0 且 < 1.1.0)
  • >=1.0.0 <2.0.0,明确范围
  • 1.0.0-beta.1,prerelease
  • latest,npm 标签,非版本号

运行npm install package时的默认版本为^,该版本支持无缝升级。

值得拥有的标准脚本

{
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "build": "tsc",
    "test": "vitest",
    "lint": "eslint .",
    "format": "prettier --write ."
  }
}

命名陷阱

  • 无大写字母。 MyPackage 不通过 npm install 的测试。
  • 无需空格。 使用连字符:my-package
  • Scope名称 对于GitHub或npm组织,均以@org/开头:例如@acme/utils
  • 保留字。 node_modulesfavicon.icocoreexpress 不能作为软件包名称使用。

许可证选项

选择一个公认的 SPDX 标识符:

  • MIT,最为宽松且常见的选择。
  • Apache-2.0,具有专利授权的宽松许可协议。
  • ISC,非常简短的类MIT许可证,为npm默认许可证。
  • GPL 3.0 或更高版本,共享许可。
  • UNLICENSED,私有软件包,不得用于分发。

错误或歧义的许可证字符串会在 npm 发布时触发警告。

常见问题

当有人在使用您开发的软件包的项目中运行 npm install 时,相关依赖项便会自动安装。开发依赖项仅安装在该软件包自身的开发环境中:运行时所需的软件包应归入“依赖项”类别,而测试/构建工具则应归入“开发依赖项”类别。

是的,适用于应用程序场景。lockfile可精确指定版本号,并确保在不同机器及持续集成环境中实现可复现的安装。对于发布到npm的库包,lockfile为可选配置,用户可自行生成专属lockfile。

仅当您希望默认使用 ESM(导入/导出语法)格式时才启用该选项;否则,.js文件将被视为CommonJS文件。此外,无论文件“类型”如何,均可使用.mjs格式处理 ESM 文件或使用.cjs格式处理CommonJS文件。

代码所使用的节点版本。当前常见的选择是 "engines": {"node": ">=18"}。该提示属于警告而非错误,但开发工具会予以识别,用户也可正确进行标记。

相关工具

此工具还提供其他语言版本