下面是有关如何设置私有 npm 存储库的深入指南,包括各种替代方案和实用的代码片段,可帮助您入门。无论您是独立开发人员还是大型团队的一员,私下托管您自己的 npm 包都可以为您提供控制力、灵活性和更高的安全性。
自托管解决方案
由 Git 主机管理
npm 企业版
Verdaccio 是一个开源 npm 注册表代理,易于设置和使用。它允许您托管私有包并缓存官方 npm 注册表中的公共包。
假设 Node.js 已安装在您的计算机上:
# Install Verdaccio globally npm install --global verdaccio
verdaccio
默认情况下,Verdaccio 在端口 4873 上启动。您可以打开浏览器访问 http://localhost:4873 以查看 Verdaccio UI。
Verdaccio 在第一次运行时创建默认配置文件。您可以通过编辑来自定义它(文件路径可能会根据您的系统而有所不同)。典型的配置 (~/.config/verdaccio/config.yaml) 如下所示:
# Install Verdaccio globally npm install --global verdaccio
verdaccio
这会提示输入用户名、密码和电子邮件。完成后,您将登录到您的私人注册表。
在具有有效 package.json 的包目录中:
storage: ./storage auth: htpasswd: file: ./htpasswd max_users: 100 uplinks: npmjs: url: https://registry.npmjs.org/ packages: '@*/*': access: $all publish: $authenticated proxy: npmjs '**': access: $all publish: $authenticated proxy: npmjs middlewares: audit: enabled: true logs: - { type: stdout, format: pretty, level: http }
就是这样!您的包现已发布到您本地的 Verdaccio 注册表。
要从此注册表安装软件包,您可以:
npm adduser --registry http://localhost:4873
npm publish --registry http://localhost:4873
如果您已经在 GitHub 上托管代码,那么使用 GitHub Packages 可以是一种将所有内容都集中在一个屋檐下的便捷方法。
使用 read:packages 和 write:packages 范围创建个人访问令牌 (PAT)。您可以从 开发者设置 -> 下的 GitHub 设置生成此令牌。 个人访问令牌。
将您的令牌添加到 .npmrc:
npm install <package-name> --registry http://localhost:4873
将 YOUR_GITHUB_USERNAME 替换为您的实际用户名或 GitHub 组织名称。
使用与您的 GitHub 用户名或组织匹配的范围更新您的 package.json:
registry=http://localhost:4873
然后发布:
//npm.pkg.github.com/:_authToken=YOUR_PERSONAL_ACCESS_TOKEN @YOUR_GITHUB_USERNAME:registry=https://npm.pkg.github.com
确保 .npmrc 指向 GitHub Packages,然后:
{ "name": "@YOUR_GITHUB_USERNAME/my-private-package", "version": "1.0.0", "publishConfig": { "registry": "https://npm.pkg.github.com" } }
GitLab还提供了内置的包注册表。
使用您的 GitLab 凭据创建或更新本地/全局 .npmrc 文件:
npm publish
更新您的 package.json 范围以匹配 GitLab 组或用户命名空间:
npm install @YOUR_GITHUB_USERNAME/my-private-package
然后发布:
# Install Verdaccio globally npm install --global verdaccio
verdaccio
如果您正在寻找支持多种存储库类型的强大的本地解决方案,Sonatype Nexus 或 JFrog Artifactory 可能是您的最佳选择。
使用类似的 .npmrc 设置将您的 npm 客户端指向新的 Nexus npm 存储库:
storage: ./storage auth: htpasswd: file: ./htpasswd max_users: 100 uplinks: npmjs: url: https://registry.npmjs.org/ packages: '@*/*': access: $all publish: $authenticated proxy: npmjs '**': access: $all publish: $authenticated proxy: npmjs middlewares: audit: enabled: true logs: - { type: stdout, format: pretty, level: http }
照常发布您的包:
npm adduser --registry http://localhost:4873
npm publish --registry http://localhost:4873
发布使用:
npm install <package-name> --registry http://localhost:4873
对于需要完全控制、审核和高级安全性的大型组织,npm Enterprise 是一个选择。它提供:
请参阅 npm Enterprise 文档以获取设置说明。
设置私有 npm 存储库让您可以自由地安全地管理和托管自己的包。无论您是使用 Verdaccio 等自托管解决方案、利用 GitHub Packages 或 GitLab Packages 等托管解决方案,还是选择 Nexus、Artifactory 或 npm Enterprise 等企业解决方案,基本原理都是一样的:
选择最适合您组织在安全性、可扩展性和维护方面的要求的方法。通过上面的示例和代码片段,您应该拥有坚实的基础来开始托管您自己的私有 npm 包。快乐编码!
以上是私有 npm 存储库的详细内容。更多信息请关注PHP中文网其他相关文章!