曾静的博客

但行好事,莫问前程.

嗨,我是曾静 (@devzeng),目前暂居深圳。


这是我用来记录平日学习笔记的地方,欢迎您的访问.

使用Verdaccio搭建npm仓库

Verdaccio是一个轻量级的私有NPM的Registry(从Sinopiafork过来的,sinopia最后一次更新是在几年前了)。最开始是打算使用cnpmjs这个来搭建私有的npm仓库但是搭建完成之后存在一些问题,所以使用了Sinopia,本文记录下来搭建的过程。

verdaccio

直接安装

npm install verdaccio -g

安装完成之后直接执行命令即可完成启动:

verdaccio

对于服务器上面部署可以使用pm2

更多关于PM2的用法的可以参考:https://wohugb.gitbooks.io/pm2

使用Docker安装

由于之前搭建Nexus的时候安装了Docker的环境,刚好verdaccio支持Docker,所以直接使用Docker来安装了。

1、创建配置文件

mkdir -p /home/docker
git clone https://github.com/verdaccio/docker-examples
mv docker-local-storage-volume /home/docker/verdaccio

2、修改配置文件

(1)修改conf/config.yaml

# 使用淘宝的cnpmjs镜像,加速
uplinks:
  npmjs:
    url: https://registry.npm.taobao.org/

(2)修改conf/htpasswd

http://tool.oschina.net/htpasswd生成需要的账号密码

(3)删除storage下面的文件

3、创建并运行容器

docker run --name verdaccio -d -v /home/docker/verdaccio:/verdaccio -p 4873:4873 verdaccio/verdaccio:latest

通过docker logs verdaccio查看日志发现存在权限问题,是由于使用了挂载的数据卷和容器内部的权限不一致的问题,需要修改下权限:

(1)进入容器

docker exec -it verdaccio sh

(2)查看用户ID

whoami & id

(3)修改文件夹权限

sudo chown -R 200 verdaccio

客户端配置

启动容器之后访问http://localhost:4873出现如下界面表示安装成功:

verdaccio

(1)配置使用私有的镜像

npm set registry http://localhost:4873

(2)登录

npm adduser --registry http://localhost:4873

(3)发布

npm publish --registry http://localhost:4873

参考资料

1、verdaccio官网

2、使用Sinopia搭建私有的npm仓库

3、CentOS6.x 安装 Docker 和 Docker Compose

4、谈谈 Docker Volume 之权限管理(一)

最近的文章

使用Anaconda管理Python环境

Python好用但是在使用过程中发现还是有很多问题的,其中一个就是版本管理(Python2和Python3的切换)。相比于Ruby的版本管理有rvm,可以使用rvm use 2.4.0这样的命令来快速切换Ruby的版本。出于历史原因目前还是有很多Python的程序是运行在Python2.7,经常需要在Python3的环境下面执行一些实例切换起来非常麻烦,刚好最近了解到Anaconda,Anaconda 是一个可用于科学计算的 Python 发行版,支持 Linux、Mac、Windows系...…

Note继续阅读
更早的文章

iOS开发中使用Mantle构建模型层

在iOS的开发中为了快速的实现产品的迭代和新功能的开发,常常会弱化Model的功能,NSDictionary作为承载业务的数据类型出现在各种地方(SQLite,Model Object,API Service…),直接使用objectForKey的方式进行数据的读取,参数和值的正确性完全没有经过编译器检查,字符串很容易写错,极容易导致在运行阶段出现低级bug.1、Property名称转换由于API使用的开发语言与iOS所使用的Objective-C是截然不同的,所以可能将一些保留关键字作为...…

Note继续阅读