# npm package.json 文件

管理本地安装的 npm 包的最佳方法是创建一个  package.json 文件。

一个 package.json 文件:

  • 列出项目所依赖的包。
  • 允许使用语义版本控制规则指定项目可以使用的包版本。
  • 使构建可重现,因此更容易与其他开发人员共享。

# 要求

一个 package.json 必须具备:

  • "name"

    • 全部小写
    • 一个字,没有空格
    • 允许使用破折号和下划线`
  • "version"

    • 以形式 x.x.x
    • 遵循 semver 规范例如:
{
  "name": "my-awesome-package",
  "version": "1.0.0"
}

# 创建 package.json

创建 package.json 文件有两种基本方法。

# 1. 运行 CLI 问卷

要使用你提供的值创建一个 package.json 文件,请运行:

> npm init

这将启动一个命令行调查问卷,该调查问卷将 package.json 在你启动命令的目录中创建一个。

# 2. 创建默认值 package.json

要获得默认值 package.json ,请 npm init 使用 --yes  or -y 标志运行:

> npm init --yes

此方法将 package.json 使用从当前目录中提取的信息生成默认值。

> npm init --yes
Wrote to /home/ag_dubs/my_package/package.json:
{
  "name": "my_package",
  "description": "",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/ashleygwilliams/my_package.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/ashleygwilliams/my_package/issues"
  },
  "homepage": "https://github.com/ashleygwilliams/my_package"
}
  • name : 当前目录名
  • version : 总是  1.0.0
  • description : 来自自述文件的信息,或空字符串  ""
  • main : 总是  index.js
  • scripts : 默认情况下创建一个空 test 脚本
  • keywords : 空的
  • author : 空的
  • licenseISC
  • bugs : 来自当前目录的信息(如果存在)
  • homepage : 来自当前目录的信息(如果存在)

你还可以为 init 命令设置多个配置选项。一些有用的:

> npm set init.author.email "wombat@npmjs.com"
> npm set init.author.name "ag_dubs"
> npm set init.license "MIT"

如果 package.json 中没有描述字段,npm 将使用 README.md 或 README的第一行。描述可以帮助人们在搜索 npm 时找到你的包,因此在 中进行自定义描述 package.json 以使你的包更容易找到绝对有用。

# 如何自定义 package.json 问题

如果你希望创建许多 package.json 文件,你可能希望自定义在初始化过程中提出的问题,以便文件始终包含你所期望的关键信息。你也可以自定义字段以及提出的问题。

为此,你在 ~/.npm-init.js 主目录中创建自定义 .npm-init.js

一个简单的 .npm-init.js 可能看起来像这样:

module.exports = {
  customField: 'Custom Field',
  otherCustomField: 'This field is really cool'
}

npm init 在你的主目录中使用此文件运行将输出 package.json 包含以下行的文件:

{
  customField: 'Custom Field',
  otherCustomField: 'This field is really cool'
}

你还可以使用 prompt 功能自定义问题。

  module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL");

要了解有关如何创建高级自定义的更多信息,请查看 init-package-json 的文档

# 指定依赖项

要指定项目所依赖的包,你需要列出要在 package.json 文件中使用的包,可以列出两种类型的包:

  • "dependencies" :应用程序在生产中需要这些包。
  • "devDependencies" : 这些包只用于开发和测试。

# 手动编辑 package.json

你可以手动编辑你的 package.json 。你需要在包对象中创建一个 dependencies 指向对象的属性。此对象将包含命名要使用的包的属性。它将指向一个semver表达式,该表达式指定与您的项目兼容的项目版本。

如果你有只需要在本地开发期间使用的依赖项,请按照与上述相同的说明进行操作,但使用名为 devDependencies .

例如,下面的项目在生产中使用 my_dep 与主要版本 1 匹配的包的任何版本,并且需要 my_test_framework 与主要版本 3 匹配的包的任何版本,但仅用于开发:

{
  "name": "my_package",
  "version": "1.0.0",
  "dependencies": {
    "my_dep": "^1.0.0"
  },
  "devDependencies" : {
    "my_test_framework": "^3.1.0"
  }
}

# 在 --save 和 --save-dev 安装标志

向你的依赖项添加依赖项的更简单(也更棒)的方法 package.json 是从命令行 npm install 执行此操作,使用 --save 或 标记命令 --save-dev ,具体取决于你希望如何使用该依赖项。

要向你的 package.json 's添加条目 dependencies

npm install <package_name> --save

要向你的 package.json 's添加条目 devDependencies

npm install <package_name> --save-dev

# 管理依赖版本

npm 使用语义版本控制,或者我们经常提到的 SemVer,来管理包的版本和版本范围。

如果你的 package.json 目录中有一个文件并运行 npm install ,npm 将查看该文件中列出的依赖项并使用语义版本控制下载最新版本。

Last Updated: 9/16/2022, 12:12:49 PM