自己的前端组在开发react-native用到很多封装的包,私有仓库是很有必要的,之前使用过nexus的npm仓库。verdaccio相比界面化更亲近,配置相对来说也比较方便。 本文是用docker配置,如果直接配置的话非常简单这里就不说了
1.拉取verdaccio的docker镜像
docker pull verdaccio/verdaccio复制代码
2.在用户根目录下创建docker文件夹存放verdaccio配置文件
mkdir -p ~/dockercd /data/demo复制代码
从git拉取示例demo并且cd到目录下
git clone https://github.com/verdaccio/docker-examplescd docker-examples复制代码
移动配置文件到第一步创建的文件夹
mv docker-local-storage-volume ~/docker/verdaccio复制代码
给予文件夹权限
chown -R 100:101 ~/docker/verdaccio复制代码
启动镜像
docker run --name verdaccio -itd -v ~/docker/verdaccio:/verdaccio -p 4873:4873 verdaccio/verdaccio复制代码
这时候可以先查看服务地址加端口号4873,如下图这样就是运行成功了
3.修改配置文件
cd ~/docker/verdaccio/confvim conf.yaml复制代码
修改镜像源publish和install权限
uplinks: npmjs: url: http://registry.npm.taobao.org/ 淘宝镜像packages: '@jota/*': access: $all publish: $all '@*/*': # scoped packages access: dreamfan publish: dreamfan proxy: npmjs '**': # allow all users (including non-authenticated users) to read and # publish all packages # # you can specify usernames/groupnames (depending on your auth plugin) # and three keywords: "$all", "$anonymous", "$authenticated" access: $authenticated 拉取权限,默认为$all,$authenticated是已注册用户 # allow all known users to publish packages # (anyone can register by default, remember?) publish: dreamfan publish权限,默认为$all,这里改为我配置的用户名 # if package is not available locally, proxy requests to 'npmjs' registry proxy: npmjs复制代码
其他相关配置可以参考snopia的配置文件,几乎差不多
4.添加用户
注:这里因为内部使用,关闭了npm注册权限,直接注册两个账号控制publish权限,如果不需要做权限控制直接忽略这一步。
配置用户
cd ~/docker/verdaccio/confvim htpasswd复制代码
在注册用户文件中添加用户,用户名加密码的base64 encode 可以在()这个网站中直接转换,将生产的一串码复制到htpasswd中
docker restart verdaccio复制代码
重启一下verdaccio生效配置
5.登录
这就已经配置完成了,之后可以使用nrm切换到你的镜像源 npm login登录配置过的账号密码即可 如果没有配置权限直接npm adduser就可以