npm私服搭建的必要性

1.如果公司处于隐私保护的需要,不想讲自己封的包推到npm社区,但又急需要一套完整的包管理工具来管理越来越多的组件,模块,项目。对于前端,最熟悉的莫过于npm,bower等,但是bower的市场明显没有npm强大的,npm是前端包管理的不二选择 ~
2.我们公司项目里直接依赖或间接依赖的包可能会有上千个,下过node库的人都懂,从npmjs上下载有多慢,所以大家会用cnpm从淘宝那下,但有比淘宝更快的方法是从局域网的私服下。
3.当我们搭好了这套私服管理工具之后有什么优势呢?

私有包托管在我们的私服上,不对外。
项目中使用的所有包可以缓存在我们的私服上,然后大家下包的时候走私服,不用走npmjs了。速度快上七八倍不在话下。
对于下载和发布npm包都有了相应的权限管理。

搭建过程
叨叨了这么半天,终于开始进入正题,有木有很期待。

服务器搭建

1.安装node环境
下载最新的node环境,下载地址:https://nodejs.org/en/download/current/
安装命令:解压安装就好,版本号自己变一下,然后配置一下环境变量,比较简单这里不多说了。

tar -xvf node-v8.9.1-linux-x64.tar.gz

2.安装verdaccio
加上–unsafe-perm的原因是防止报grywarn权限的错。

npm install -g verdaccio --unsafe-perm

3. 配置

3.1. 修改配置文件
verdaccio 的特点是,你在哪个目录运行,它的就会在对应的目录下创建自己的文件。目录下默认有两个文件:config.yaml和storage,htpasswd 是添加用户之后自动创建的;
由于第一次启动默认的config.xml文件是从原始文件default.yaml拷贝而来,可先修改verdaccio 原始的default.yaml。
地址:verdaccio 安装目录/conf/ default.yaml。
打开默认启动的config.yaml文件。

vim /home/admin/.config/verdaccio/config.yaml

在配置文件最后添加监听端口,配置文件详解请见文末尾

listen: 0.0.0.0:4873 # listen on all addresses

3.2. 对外开放4873端口
verdaccio继承了sinopia,端口号4873依然不变。

firewall-cmd --state # 先查看防火墙状态,
service firewalld start # 开启防火墙:
firewall-cmd --zone=public --add-port=4873/tcp –permanent #开放4873端口
firewall-cmd --reload #重新载入
firewall-cmd --zone=public --query-port=4873/tcp #查看是否添加成功

4.启动verdaccio

4.1.verdaccio直接启动
命令:

verdaccio

// 显示信息,
第一句是配置文件的地址,
第二句,给了我们地址,访问便可以看到我们的私服已经搭建成功了。
目前还没有往上发布过包,所以没有任何包的信息。当我们打开页面还可以看到服务器这边有访问记录,控制台的日志一直在打。
verdaccio doesn‘t need superuser privileges. Don‘t run it und
warn — config file - /home/admin/.config/verdaccio/config.yaml
warn — http address - http://localhost:4873/ - verdaccio/

4.2 pm2守护verdaccio进程

利用第一种方法虽然可以正常启动和使用verdaccio,但不建议用这种方式启动verdaccio,我们可以用pm2来使用pm2对verdaccio进程进行托管启动。
安装pm2并使用pm2启动verdaccio,使用pm2托管的进程可以保证进程永远是活着的,尝试通过kill -9去杀verdaccio的进程发现杀了之后又自动启起来。推荐使用此种方式启动verdaccio.

4.2.1安装pm2

npm install -g pm2 --unsafe-perm

4.2.2使用pm2启动verdaccio

pm2 start verdaccio

4.2.3 查看pm2 守护下的进程verdaccio的实时日志

pm2 show verdaccio

通过这个命令我们可以从下图中看到所有verdaccio的所有信息,打开 out log path查看进程输出日志,出现错误时候也可以打开error log来查看错误日志。

实时查看该路径下的日志命令:

tail -f /home/admin/.pm2/logs/verdaccio-out-0.log

添加用户

npm adduser --registry http://192.168.XX.XX:4873 //后面是我们的私服地址

类似如下:
Username: lk
Password:
Email: (this IS public) lk@qq.com
Logged in as rong on http://192.168.XX.XX:4873/.

然后在verdaccion启动页面尝试登录即可,默认登录后有发布包的权限。(这里可以通过修改config.yaml配置文件来对权限进行设置)、

到这里服务器端的搭建就完毕了,下篇我们来介绍客户端如何使用。

npm 私服工具verdaccio 搭建的更多相关文章

  1. npm 私服工具verdaccio 安装配置试用

      1. 安装 npm install -g verdaccio 2. 启动 verdaccio // 界面显示信息 Verdaccio doesn't need superuser privileg ...

  2. vue组件库(二):基于verdaccio工具npm私服搭建

    大纲 搭建npm私服的必要性 搭建npm私服的主要操作 一.搭建npm私服的必要性 二.搭建npm私服的主要操作 1.环境准备 确保服务器已安装以下包: node(必须) 安装了nodenpm,如果想 ...

  3. 搭建npm私服流程

    npm私服必要性 1. 如果公司处于隐私保护的需要,不想将自己封的包推到npm社区,但又急需要一套完整的包管理工具来管理越来越多的组件,模块,项目.对于前端,最熟悉的莫过于npm,bower等,但是b ...

  4. 使用verdaccio 搭建npm私有仓库

    使用verdaccio 搭建npm私有仓库 1. 为什么要搭建私有的npm仓库?    随着公司的业务越来越复杂,项目迭代速度也越来越快,那么项目间的常用的业务代码共享变得非常之有必要.但是对于公司的 ...

  5. 使用 Nexus3 Repository Manager 搭建 npm 私服

    公司里一般都有自己的私服,用于管理封装的工具插件等,Nexus2主要是用于maven/gralde仓库的统一管理,Nexus3则添加了npm插件,可以对npm提供支持,其实用于npm仓库管理的还有一个 ...

  6. Nexus 3 搭建 npm 私服 (windows)

    Nexus 3 搭建 npm 私服备忘 下载与安装 在官网下载Nexus Repository Manager OSS 3.x, 解压至任意位置. 管理员运行 powershell, 切换到 nexu ...

  7. npm私服搭建

    本文是在 centos7 下利用 nexus 搭建 npm 私服的整理 一.安装 JDK 1.下载 JDK 2.安装 tar zxvf jdk-8u191-linux-x64.tar.gz .0_19 ...

  8. centos 系统使用verdaccio搭建npm私库

    .安装nodejs yum install -y nodejs 2.安装verdaccio npm install -g verdaccio --unsafe-perm 3.配置 a.修改配置文件 c ...

  9. 使用 docker + verdaccio 搭建npm私有仓库

    本文介绍如何使用 verdaccio 搭建私有npm仓库,以及使用 docker 时如何映射到本地目录,方便简单对仓库进行各种操作.系统环境是 Linux. verdaccio verdaccio 是 ...

随机推荐

  1. 【转载】linux性能监控分析及通过nmon_analyse生成分析报表

    转载地址:http://www.cnblogs.com/Lam7/p/6604832.html nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文 ...

  2. C# 退出应用程序的几种方法

    Application.Exit();//好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵 this.Close();//只是关闭当前窗体. Application.ExitT ...

  3. 微信小程序转百度小程序代码

    听说百度小程序开始出现手机端搜索流量,作为SEO一员,必须搞他.但是又奈何之前做的都是微信小程序,所以用php写了一个微信小程序转百度小程序代码. 修改文件后缀名 .wxml转换为.swan .wxs ...

  4. MP4文件批量转码成MP3

    需求背景:最近为了学python爬虫,在论坛里找了不少视频教程,非常棒.但有时看视频不方便,就想着能否把视频批量转码成音频,这样在乘坐地铁公交的时候也能学习了. 解决路径:有了需求,我首先在论坛里搜了 ...

  5. 使用selenium谷歌浏览器驱动配置:

    from selenium import webdriver#导入谷歌浏览器的chrome_driverchrome_driver = r"C:\python36\Lib\site-pack ...

  6. PJ8搜索

    1,P1036 2,枚举子集 3,P1378 我觉得先需要一个排列,而且是n中取n的那种. 然后按照每个顺序进行模拟扩展,得出最大面积(体积?) 最后就更新最大值没什么说的. 1,啥是搜索,主要是一个 ...

  7. Redis 高可用架构设计(转载)

    转载自:https://mp.weixin.qq.com/s?__biz=MzA3NDcyMTQyNQ==&mid=2649263292&idx=1&sn=b170390684 ...

  8. CSS3 之filter毛玻璃效果弹窗

    先看效果: 效果主要用css3的滤镜属性实现,代码如下: <!DOCTYPE html> <html lang="en"> <head> < ...

  9. mysql rtrim() 函数

    mysql> select rtrim(" cdcdcd "); +--------------------+ | rtrim(" cdcdcd ") | ...

  10. element ui 怎么去修改el-date-picker的时间

    <el-date-picker v-model="formSearch.timeRange" type="daterange" placeholder=& ...