package.json配置说明文档(翻译)

Description

这份文档是您所需要了解的关于软件包中所需要的内容的全部内容。它必须是JSON,而不仅仅是JavaScript字面量。
本文档中描述的许多行为都受到config中描述的配置设置的影响。

name

如果您计划发布包,那么package.json中最重要的内容是nameversion字段,因为它们是必需的。nameversion一起形成一个标识符,该标识符被认为是完全唯一的。对包的更改应该与对version的更改一起进行。如果您不打算发布包,则nameversion字段是可选的。
name就是当前开发的包名。

一些规则:

  • name必须少于或等于214个字符。这包括作用域包的作用域。
  • 作用域包的名称可以以句点或下划线开头。在没有scope的情况下,这是不允许的。
  • 新程序包的名称中不得包含大写字母。
  • 该名称最终成为URL、命令行上的参数和文件夹名称的一部分。因此,名称不能包含任何非URL安全字符。

一些提示:

  • 不要使用与核心节点模块相同的名称。
  • 不要在名称中加“js”或“node”。假设它是js,因为您正在编写一个package.json文件,并且可以使用“engines”字段指定引擎。(见下文。)
  • 该名称可能会作为参数传递给require(),因此它应该是简短的,但也具有合理的描述性。
  • 你可能想检查npm注册表,看看是否已经有了这个名字的东西,然后再加入它。https://www.npmjs.com/
    名称可以有选择地以作用域作为前缀,例如@myorg/mypackage。有关更多详细信息,请参阅范围。

dependencies

dependencies是在一个简单对象中指定的,该对象将包名称映射到版本范围。版本范围是一个字符串,该字符串具有一个或多个以空格分隔的描述符。依赖项也可以用tarball或git URL来标识。

请不要在dependencies对象中放置test harnesses、transfiler或其他“开发”时工具。请参阅下面的devDependencies。

devDependencies

如果有人计划在他们的程序中下载并使用您的模块,那么他们可能不想或不需要下载并构建您使用的外部测试或文档框架。
在这种情况下,最好将这些附加项映射到devDependencies对象中。
这些东西将在从包的根目录进行npm linknpm install时安装,并且可以像任何其他npm配置参数一样进行管理。有关该主题的更多信息,请参阅配置。
对于非特定于平台的构建步骤,例如将CoffeeScript或其他语言编译为JavaScript,请使用prepare脚本来完成此操作,并使所需的包成为devDependency。

peerDependencies

在某些情况下,您希望表达软件包与主机工具或库的兼容性,而不一定要对此主机进行要求。这通常被称为插件。值得注意的是,您的模块可能会暴露主机文档预期和指定的特定接口。

参考:

https://docs.npmjs.com/cli/v9/configuring-npm/package-json

posted @ 2023-03-20 16:45  Better-HTQ  阅读(50)  评论(0编辑  收藏  举报