IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 如何搭建一个 npm 私服 -> 正文阅读

[JavaScript知识库]如何搭建一个 npm 私服

最近在开发一个脚手架工具,但是在开发调试阶段不能发布到 npm 官方仓库上,而且后期也只希望在部门内部使用,因此就有了搭建 npm 私服的需求。虽然 npm 官方提供收费的私有仓库,考虑到现在项目需求,使用 verdaccio 不仅免费而且还简单好用。

1. 如何安装

使用下面的命令全局安装:

# 使用 npm
$ npm i verdaccio -g

# 使用 yarn
$ yarn global add verdaccio

安装完成之后运行:

$ verdaccio
info --- Creating default config file in /root/.config/verdaccio/config.yaml
warn --- config file  - /root/.config/verdaccio/config.yaml
warn --- Plugin successfully loaded: verdaccio-htpasswd
warn --- Plugin successfully loaded: verdaccio-audit
warn --- http address - http://localhost:4873/ - verdaccio/5.1.6

可以看到这边做了两件事:

  • 初始化了一份配置文件;
  • 然后在 4873 端口起了一个服务,通过这个地址可以访问 web 页面,查看里面发布了哪些包;

这里有个问题,现在这个进程在前台运行,如果我们关掉 shell 窗口,这个进程就退出了。因此我们需要安装一下 pm2 进程守护,让 verdaccio 在后台运行。

$ yarn global add pm2

然后执行命令:

$ pm2 start verdaccio

此时进程就在后台运行了,我们可以通过下面的命令查看一下监听 4873 端口的进程:

$ lsof -i :4873
COMMAND      PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
Verdaccio 625330 root   20u  IPv4 10623850      0t0  TCP *:4873 (LISTEN)

当我们需要退出这个进程的时候,只需要执行下面的命令:

$ pm2 stop verdaccio

然后需要改下配置文件,重点改两个地方:

# 添加淘宝镜像
uplinks:
  npmjs:
    url: https://registry.npmjs.org/
  taobao:
  	url: https://registry.npm.taobao.org/

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated

    #代理 表示没有的仓库会去这个npmjs 里面去找 ,
    # taobao 又指向  https://registry.npmjs.org/ ,就是上面的 uplinks 配置
    proxy: taobao

  '**':
    # 三种身份,所有人,匿名用户,认证(登陆)用户
    # "$all", "$anonymous", "$authenticated"

    #是否可访问所需要的权限
    access: $all

    #发布package 的权限
    publish: $authenticated

    # 如果package 不存在,就向代理的上游服务发起请求
    proxy: taobao

# 监听的端口 ,重点, 不配置这个,只能本机能访问
listen: 0.0.0.0:4873

我们可以通过下面的地址远程访问 web 页面,如果你用的是阿里云服务器,记得在安全组中允许 4873 端口访问:

http://<服务器公网IP>:4873/#/

2. 发布一个包

我们先将 npm 源设为刚才创建的服务地址:

$ npm config set registry http://localhost:4873

如果不希望修改全局的 npm 镜像源,而是只针对某个项目使用私有的 npm 仓库,也可以在项目根目录下添加 .npmrc 文件,内容如下:

registry=http://localhost:4873

发布之前我们需要先创建账号并登录。默认情况下 verdaccio 允许任何人创建账号,执行命令:

$ npm adduser

按照提示输入用户名、密码、邮箱等信息,完成之后会自动登录,用下面命令查看当前登录用户:

$ npm who am i

如果已经注册过账号,直接登录即可:

$ npm login

最后在 package.json 中设置好版本,然后发布:

$ npm publish

参考

verdaccio 官方文档
使用verdaccio 搭建私有npm 服务器
npm私服搭建—verdaccio方案及其最佳实践

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 11:54:34  更:2021-10-17 11:56:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:17:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码