[TOC]
您可以发布任何具有 package.json 文件的目录。 本章介绍如何首次发布软件包,以及如何在以后更新软件包。
# 如何发布一个包
## 一、 准备
### 1. 了解npm政策
在开始之前,如果您对网站礼仪,命名,许可或其他准则有疑问,最好查看 npm 的[政策](https://www.npmjs.com/policies)。
### 2. 创建一个用户帐户
要发布,您必须是 npm 注册用户。 如果您不是用户,请使用 `npm adduser` 创建一个帐户。 如果您在网站上创建了用户帐户,请使用 npm login 从终端访问您的帐户。
测试:
* 从终端输入 `npm whoami` 以查看您是否已经登录(从技术上讲,这也意味着您的凭证已经存储在本地)。
* 检查您的用户名是否已经通过 https://npmjs.com/~username 添加到注册表中。例如,https://www.npmjs.com/~carolynawombat 。
### 3. 查看软件包目录
#### 3.1 查看内容
请注意,除非被本地 `.gitignore` 或 `.npmignore` 文件忽略,否则将包含目录中的所有内容。 要了解如何使用这些命令,请参阅 [npm-developers](https://docs.npmjs.com/misc/developers) 。
#### 3.2 查看 package.json 文件
阅读 [ Working with package.json](https://docs.npmjs.com/getting-started/using-a-package.json) 以确保您所需的细节反映在 packag 中。
#### 3.3 选择一个名字
为您的包选择一个唯一的名称。 尝试选择一个描述性名称:
* 还没有被别人拥有
* 不是拼写像另一个名字,除了错别字
* 不会混淆他人的作者身份
* 符合npm政策准则。 例如,请勿将您的软件包命名为冒犯性的,并且不要使用他人的商标名称。
* 在package.json文件的相应行中指定名称。
为您的包选择一个唯一的名称。 尝试选择一个描述性名称:
还没有被别人拥有
不是拼写像另一个名字,除了错别字
不会混淆他人的作者身份
符合npm政策准则。 例如,请勿将您的软件包命名为冒犯性的,并且不要使用他人的商标名称。
在package.json文件的相应行中指定名称。
注意:如果您使用 [scopes](https://docs.npmjs.com/cli/version),前3个警告不适用。
#### 3.4 包括文档(readme.md)
npm 建议您包含一个自述文件来记录您的软件包。 自述文件必须具有文件名readme.md 。 文件扩展名.md表示该文件是一个 [markdown](https://guides.github.com/features/mastering-markdown/#what) 文件。 当有人发现你的软件包时,这个文件将出现在 npm 网站上。
在开始之前,请查看一些包页面,以获取可添加到自述文件中的信息的想法,并了解为什么这非常重要。
1. 使用任何文本编辑器创建一个文件。
2. 将其保存在名为 readme.md 的项目目录中
3. 当您发布时,此文档将显示在人们下载您的软件包的网页上。
## 二、发布
使用 `npm publish` 发布软件包 。
## 三、测试
访问 https://npmjs.com/package/yourPackageName 。 你应该看到一个关于你的新软件包的网页。 它可能看起来有点像这样:
![](https://docs.npmjs.com/images/lodash-package-page.png =827x802)
## 四、恭喜,发布成功!
# 如何更新软件包
## 如何更新版本号
当您进行更改时,您可以使用此命令更新软件包
`npm version <update_type>`
其中<update_type>是[语义版本](https://docs.npmjs.com/getting-started/semantic-versioning)控制发布类型之一,即 patch,minor 或 major。
该命令将更改 package.json 中的版本号。
注意:如果你已经将一个标签与你的 npm 账户关联起来,那么这个标签还会添加一个带有更新版本号的标签到你的 git 仓库。
更新[版本号](https://docs.npmjs.com/cli/version)后,再次运行 `npm publish`。
测试:访问 https://npmjs.com/package/yourPackageName 。 包号应该已经更新。
## 如何更新自述文件
显示在网站上的自述文件将不会更新,除非发布新版本的软件包,所以您需要运行 `npm version patch` 和 `npm publish` 来更新网站上显示的文档。
# 学到更多
* 要了解关于节点模块和软件包的更多信息,请[参见此处](https://docs.npmjs.com/getting-started/packages)。
* 要了解语义版本控制,请[单击此处](https://docs.npmjs.com/getting-started/semantic-versioning)。
* 要详细了解标签,请[点击此处](https://docs.npmjs.com/getting-started/using-tags)。
* 要了解更多关于package.json文件的信息,请[点击这里](https://docs.npmjs.com/getting-started/using-a-package.json)。
* 要了解有关命名的更多信息,包括npm如何保护您免受域名困境的困扰,请[点击此处](https://gist.github.com/ashleygwilliams/e466c1e9fd3be42545da511239edd554)。
> [原文链接](https://docs.npmjs.com/getting-started/publishing-npm-packages#preparation)
- 第一章 入门
- 01 - 什么是npm?
- 02 - 如何找到和选择软件包
- 03 - 如何设置新的npm账户并安装npm
- 04 - 如何安装本地软件包
- 05 - 使用package.json
- 06 - 如何更新本地软件包
- 07 - 如何卸载本地软件包
- 08 - 如何安装全局包
- 09 - 如何更新全局包
- 10 - 如何卸载全局软件包
- 11 - 如何创建Node.js模块
- 12 - 如何发布和更新软件包
- 13 - 如何使用语义版本控制
- 14 - 如何使用作用域包
- 15 - 如何用dist-tags标签包
- 16 - 如何使用双因素认证
- 17 - 如何使用安全令牌
- 18 - 如何更改配置文件设置
- 19 - 了解包和模块
- 20 - 如何防止权限错误
- 第二章 私人包裹
- 第三章 故障排除
- 第四章 使用npm
- 第五章 CLI命令
- 第七章 配置npm
- 第八章 npm,Inc.