一、npm
npm(Node Package Manager)是 Node.js 的包管理工具,用于安装、分享和管理 JavaScript 包和项目依赖。npm 是 Node.js 的默认包管理器,随同 Node.js 一起安装。
二、npm主要功能特点
- 包管理:npm 允许开发者轻松地安装、更新和删除 JavaScript 包。开发者可以通过 npm 安装他人编写的包,也可以将自己的包发布到 npm 上供他人使用。
- npm 能够管理项目的依赖关系,帮助开发者在项目中引入所需的第三方库和工具,并自动解决依赖冲突。
- 脚本执行:npm 允许开发者在 package.json 文件中定义各种自定义脚本,比如构建、测试等,通过简单的命令来执行这些脚本。
- 版本管理:npm 使用语义化版本控制(Semantic Versioning)来管理包的版本号,开发者可以指定所需的包版本范围,确保项目的稳定性和兼容性。
- 作用域和私有包:npm 支持作用域(Scope)概念,允许开发者将包发布到私有作用域,以便在内部项目中共享私有包。
- 全球化:npm 是一个全球化的包管理工具,开发者可以访问全球范围内的数以百万计的开源包,并从中选择适合自己项目需求的包。
三、npm 私有包发布
Verdaccio 是一个开源的 npm 私有 registry 代理,通过 Verdaccio,可以管理自己的私有 npm 包,以及代理和缓存公共 npm registry 中的包。
使用 Verdaccio 搭建私有 npm registry 的步骤:
1. 安装 Verdaccio
在命令行中使用 npm 全局安装 Verdaccio:
npm install -g verdaccio
2. 启动 Verdaccio
执行启动命令:
verdaccio
默认情况下,Verdaccio 会运行在 http://localhost:4873。可以在浏览器中访问该地址来查看 Verdaccio 的 Web 界面。
3. 配置 npm
将 npm 的 registry 配置指向 Verdaccio,以便在发布和安装包时使用私有 registry
使用以下命令来配置 npm registry:
npm config set registry http://localhost:4873
4. 发布和安装私有包
发布私有包到 Verdaccio:
npm publish
安装包:
npm install 或 yarn add
5.管理用户和权限
Verdaccio 允许设置用户账号和权限,以控制谁可以访问和发布包。也可以在 Verdaccio 的 Web 界面或配置文件中进行用户和权限的管理。
四、npm 公共包发布
要将 npm 包发布到公共的 npm registry 中,你需要遵循以下步骤:
1. 创建 npm 账号
需要在 npm 官网上注册一个账号。
2.登录 npm 账号
在命令行中使用以下命令登录 npm 账号:
npm login
输入 npm 上注册的用户名、密码和邮箱来登录。
3.准备你的包
在项目中,确保你的包已经准备好可以发布。包括正确配置的 package.json 文件和所有需要的文件。
4.发布包
运行以下命令发布包到公共的 npm registry:
npm publish
5.版本号管理
在每次发布包时,确保更新包的版本号,遵循语义化版本规范(Semantic Versioning)。
6.管理包的访问权限
如果你想限制包的访问权限,可以在 npm 上设置包的访问权限,例如私有包或公共包。
7.更新文档和元数据
在发布包之前,确保你的包的文档和元数据是准确的,以便其他人可以正确使用和理解你的包。
8.验证发布
发布后,可以使用 npm info your-package-name 命令来验证包是否已经成功发布到公共的 npm registry。
五、常用命令
-
检查当前的 registry 配置:
npm config get registry
-
设置 registry 配置:
npm config set registry https://registry.npmjs.org
-
创建用户:
npm adduser
-
登录:
npm login
-
删除 registry 特定包或版本:
npm unpublish my-package
npm unpublish my-package@1.0.0
强制删除:
npm unpublish my-package --force
六、说明
-
当 npm 和 yarn 配置了不同的 registry 时,在使用 yarn add 安装包时发现会从 npm registry 配置获取。这是因为 yarn 在安装包时会优先使用 npm 的配置而不是自身的配置
-
如何在项目中使用特定的 registry 配置而不是全局配置:
可以在项目的根目录下创建一个.npmrc或.yarnrc文件,并在其中指定项目特定的 registry 地址。在.npmrc文件中,可以添加如下内容:
registry=https://your-custom-registry-url
在.yarnrc文件中,可以添加如下内容:
registry "https://your-custom-registry-url"