阅读(112) (9)

npm 发布 publish

2021-09-06 15:44:56 更新

发布包

概要

npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] [--otp otpcode] [--dry-run]


Publishes '.' if no argument supplied
Sets tag 'latest' if no --tag specified

描述

将包发布到注册表,以便可以按名称安装。

默认情况下,npm 将发布到公共注册表。这可以通过指定不同的默认注册表或在名称中使用npm-scope来覆盖(请参阅参考资料package.json)。

  • <folder>:包含 package.json 文件的文件夹
  • <tarball>:一个 url 或文件路径到 gzip 压缩的 tar 存档,其中包含一个包含 package.json 文件的文件夹。
  • [--tag <tag>] 使用给定的标签注册已发布的包,以便npm install <name>@<tag>安装此版本。默认情况下,npm publish更新并npm install安装latest标记。有关标签的详细信息,请参阅npm-dist-tag
  • [--access <public|restricted>] 告诉注册中心这个包应该被发布为公开的还是受限的。仅适用于范围包,默认为restricted. 如果你没有付费帐户,则必须发布--access public 以发布范围包。
  • [--otp <otpcode>] 如果你在auth-and-writes模型中启用了双因素身份验证,那么你可以提供来自你的身份验证器的代码。如果你不包含此内容并且你正在从TTY 运行,那么系统会提示你。
  • [--dry-run] 截至npm@6,除了实际发布到注册表之外,所有发布都可以做。报告将要发布的内容的详细信息。

如果指定的注册表中已存在包名称和版本组合,则失败。

一旦使用给定的名称和版本发布包,该特定的名称和版本就再也不能使用,即使使用npm-unpublish将其删除。

npm@5, sha1sum 和带有 sha512sum tarball 的完整性字段都将在发布期间提交给注册表。后续安装将使用支持的最强算法来验证下载。

类似于--dry-runsee npm-pack,它计算出要包含的文件并将它们打包成一个 tarball 以上传到注册表。

包中包含的文件

要查看包中将包含的内容,请运行npx npm-packlist. 默认情况下包含所有文件,但以下情况除外:

  • 始终包含与软件包安装和分发相关的某些文件。例如,package.jsonREADME.md、 LICENSE等。
  • 如果 package.json中有"files"列表,则仅包含指定的文件。(如果指定了目录,则它们将被递归遍历并包含其内容,遵循相同的忽略规则。)
  • 如果有一个.gitignore.npmignore文件,则该文件中被忽略的文件和所有子目录都将从包中排除。如果 两个文件都存在,则.gitignore忽略 ,只 .npmignore使用 。 .npmignore文件遵循相同的模式规则 的.gitignore文件
  • 如果文件匹配某些模式,那么它将永远不会被包含,除非明确添加到 中的"files"列表中package.json,或者!使用.npmignore.gitignore文件中的规则取消忽略。
  • 符号链接从不包含在 npm 包中。

有关已发布包中包含的内容的完整详细信息,以及有关如何构建包的详细信息,请参阅developers

配置

tag 标签

  • 默认值:new
  • 类型:String

字符串如果你要求 npm 安装一个包并且没有告诉它一个特定的版本,那么它会安装指定的标签。

npm tag 如果未给出显式标签,则也是添加到命令指定的 package@version 的标签。

当被npm diff命令使用时,这是用于获取默认情况下将与本地文件进行比较的 tarball 的标签。

access 权限

  • 默认值:restricted 表示有范围的包,public 表示无范围的包
  • 类型:bullrestrictedpublic

发布范围包时,访问级别默认为restricted。如果您希望您的范围包公开可见(和可安装) set --access=public。的唯一有效值accesspublic和 restricted。无作用域的包的访问级别始终为public.

注意:--accessnpm publish命令上使用标志只会在包的初始发布时设置包访问级别。任何npm publish使用该--access标志的后续命令都不会影响访问级别。要在初始发布后更改访问级别,请使用npm access.

dry-run 试运行

  • 默认值:false
  • 类型:Boolean

表示你不希望 npm 进行任何更改并且它应该只报告它会做的事情。这可以被传递到任何修改本地安装,例如,命令的installupdate, dedupeuninstall,以及packpublish

注意:这不是由其他网络相关的命令,如兑现dist-tags, owner等等。

otp

  • 默认值:null
  • 类型:nullString

这是来自两因素身份验证器的一次性密码。使用npm access.

如果未设置,并且注册表响应失败并质询一次性密码,npm 将在命令行上提示输入密码。

workspace 工作区

  • 默认:
  • 类型:String(可多次设置)

允许在当前项目的已配置工作区的上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。

workspace配置的有效值为:

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择所有嵌套工作区)

为该npm init命令设置时,可以将其设置为尚不存在的工作区的文件夹,以创建该文件夹并将其设置为项目中的全新工作区。

此值不会导出到子进程的环境中。

workspaces

  • 默认值:false
  • 类型:Boolean

启用在所有已配置工作区的上下文中运行命令。

此值不会导出到子进程的环境中。