Nodejs 第八章 npm搭建私服

什么是npm私服

npm私服(私有仓库)指的是建立在企业或组织内部的、独立于公共 npm 注册中心的私有 Node 包管理器。私服允许团队在不公开源码的情况下共享和复用代码,也可以用来代理公共 npm 注册中心,缓存下载过的包,提高安装速度,减少对外部网络的依赖。

npm私服的主要用途(收益)

  1. 管理私有包
    • 私服使得企业可以在不公开的情况下共享内部的 Node 包。这对于存储商业逻辑或内部工具非常有用。
  2. 缓存公共包
    • 私服通常会缓存从公共 npm 注册中心下载的包,这意味着可以更快地安装相同的包,因为它来自内网,而不是互联网。
  3. 控制和安全性
    • 通过使用私服,企业可以更好地控制哪些包可以被内部使用,以及如何使用这些包,增强了代码的安全性和合规性。
  4. 持续集成/持续部署(CI/CD)
    • 在CI/CD流程中,私服可以提供稳定的包版本管理,确保部署过程的一致性。
  5. 提高效率
    • 开发团队不必每次都从公共 npm 注册中心下载相同的包,节约了带宽和时间。
  6. 降低公共注册中心依赖
    • 如果公共 npm 注册中心不可用,私服可以作为一个备用源来保证开发和部署流程的连续性。

如何搭建npm私服

  • Nexus Repository OSS:一个广泛使用的仓库,支持多种包类型,包括 npm。
  • JFrog Artifactory:一种企业级的解决方案,支持多种包管理和自动化工具。
  • Verdaccio:一个轻量级的私有 npm 代理注册中心,容易部署和维护。
  • GitHub Packages:GitHub 提供的包管理服务,支持 npm 私有包。

设置私服需要一定的配置工作,比如更新项目的 .npmrc 文件以指向私服的地址,以及可能的身份验证配置。一旦设置完成,私服可以显著提高组织内部开发效率和代码共享的便利性。

Verdaccio

  1. 首先从安装开始
js 复制代码
npm install verdaccio -g

使用方式很方便,直接终端verdaccio运行

  • 可以通过verdaccio --help查看命令
  • 这里我采用的是直接运行,所以他直接自动分配一个端口号给我了
  • 如果看不习惯英文的话,可以通过右上角的一个齿轮状图标打开可以修改语言
  • 回到我们拿到的命令:npm adduser --registry http://localhost:4873/
    • 这里其实就是将我们的账号指向本地的一个内网服务(4873)上
    • 如果有npm账号了,就直接npm login --registry http://localhost:4873/进行登录,后面这个指向还是要一直写上的
    • 然后npm publish --registry http://localhost:4873/将我们的包上传到私服
  • 由于我们发的是私服,所以这里的版本虽然已经跳到了1.0.4了,但npm官网上面我们的包版本其实还是1.0.1没有受到影响
  • 而当我们进行下载的时候就可以npm install xm-demo --registry http://localhost:4873/,这个时候下载下来的就是1.0.4版本而不是npm官网上的1.0.1版本(因为我们指向了本地仓库的源)。其中这里需要注意我们的后缀端口,具体是多少。默认是4873,而像小满这里就使用第二种方式指定端口9999

取消后缀

  • 如果每次都需要加上--registry http://localhost:4873/这样的一个后缀就会很麻烦,有没有什么好的解决方式?

  • 还记得前几章所讲的包管理器xmzs了吗?

    • 我们通过这个包提供的命令mmp add将其添加到镜像中
markdown 复制代码
*   然后使用`mmp use`这个镜像
markdown 复制代码
*   这时候直接`npm publish`就OK了

基本命令

  • 总结上面的配置命令,还是需要记住的
sh 复制代码
#创建账号
npm adduser --registry http://localhost:4873/
# 账号 密码 邮箱
sh 复制代码
# 发布npm
npm publish --registry http://localhost:4873/
sh 复制代码
#指定开启端口 默认 4873
verdaccio --listen 9999
sh 复制代码
# 指定安装源
npm install --registry http://localhost:4873
sh 复制代码
# 从本地仓库删除包
npm unpublish <package-name> --registry http://localhost:4873
相关推荐
i听风逝夜2 分钟前
Web 3D地球实时统计访问来源
前端·后端
iMonster6 分钟前
React 组件的组合模式之道 (Composition Pattern)
前端
呐呐呐呐呢14 分钟前
antd渐变色边框按钮
前端
元直数字电路验证33 分钟前
Jakarta EE Web 聊天室技术梳理
前端
wadesir36 分钟前
Nginx配置文件CPU优化(从零开始提升Web服务器性能)
服务器·前端·nginx
牧码岛37 分钟前
Web前端之canvas实现图片融合与清晰度介绍、合并
前端·javascript·css·html·web·canvas·web前端
灵犀坠39 分钟前
前端面试八股复习心得
开发语言·前端·javascript
9***Y4840 分钟前
前端动画性能优化
前端
网络点点滴42 分钟前
Vue3嵌套路由
前端·javascript·vue.js
牧码岛1 小时前
Web前端之Vue+Element打印时输入值没有及时更新dom的问题
前端·javascript·html·web·web前端