您可以向您的包中添加一个 package.json 文件,以便其他人轻松管理和安装。发布到注册表的包必须包含 package.json 文件。

package.json 文件

  • 列出您的项目依赖的包
  • 使用 语义版本控制规则 指定您的项目可以使用包的版本
  • 使您的构建可重复,从而更易于与其他开发者共享

注意:为了便于在 npm 网站上查找您的包,我们建议在您的 package.json 文件中包含自定义 description

package.json 字段

必需的 nameversion 字段

package.json 文件必须包含 "name""version" 字段。

"name" 字段包含您的包的名称,必须是小写且只有一个单词,并且可以包含连字符和下划线。

"version" 字段必须采用 x.x.x 格式并遵循 语义版本控制准则

作者字段

如果您想在 "author" 字段中包含包作者信息,请使用以下格式(电子邮件和网站都是可选的)

您的姓名 <[email protected]> (http://example.com)

示例

{
"name": "my-awesome-package",
"version": "1.0.0",
"author": "Your Name <[email protected]>"
}

创建新的 package.json 文件

您可以通过运行 CLI 问卷调查或创建默认的 package.json 文件来创建 package.json 文件。

运行 CLI 问卷调查

要使用您提供的值创建 package.json 文件,请使用 npm init 命令。

  1. 在命令行中,导航到您的包的根目录。

    cd /path/to/package
  2. 运行以下命令

    npm init
  3. 回答命令行问卷调查中的问题。

自定义 package.json 问卷调查

如果您预计要创建许多 package.json 文件,您可以自定义在 init 过程中询问的问题和创建的字段,以便所有 package.json 文件都包含一组标准信息。

  1. 在您的主目录中,创建一个名为 .npm-init.js 的文件。

  2. 要添加自定义问题,请使用文本编辑器添加带有 prompt 函数的问题

    module.exports = prompt("你最喜欢的冰淇淋口味是什么,朋友?", "我都很喜欢");
  3. 要添加自定义字段,请使用文本编辑器将所需字段添加到 .npm-init.js 文件中

    module.exports = {
    customField: 'Example custom field',
    otherCustomField: 'This example field is really cool'
    }

要了解有关创建高级 npm init 自定义的更多信息,请参阅 init-package-json GitHub 存储库

创建默认的 package.json 文件

要使用从当前目录中提取的信息创建默认的 package.json,请使用带有 --yes-y 标志的 npm init 命令。有关默认值的列表,请参阅 "从当前目录中提取的默认值"。

  1. 在命令行中,导航到您的包的根目录。

    cd /path/to/package
  2. 运行以下命令

    npm init --yes

示例

> npm init --yes
Wrote to /home/monatheoctocat/my_package/package.json:
{
"name": "my_package",
"description": "",
"version": "1.0.0",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/monatheoctocat/my_package.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/monatheoctocat/my_package/issues"
},
"homepage": "https://github.com/monatheoctocat/my_package"
}

从当前目录中提取的默认值

  • name: 当前目录名称
  • version: 始终为 1.0.0
  • description: 来自 README 的信息,或空字符串 ""
  • scripts: 默认情况下创建一个空的 test 脚本
  • keywords: 空
  • author: 空
  • license: ISC
  • bugs: 来自当前目录的信息(如果存在)
  • homepage: 来自当前目录的信息(如果存在)

为 init 命令设置配置选项

您可以为 init 命令设置默认配置选项。例如,要在命令行中设置默认作者电子邮件、作者姓名和许可证,请运行以下命令

> npm set init-author-email "[email protected]"
> npm set init-author-name "example_user"
> npm set init-license "MIT"