使用sinopia搭建私有npm服务

本文详述了如何使用Sinopia搭建私有npm服务,以解决内部私有包管理与公共包下载速度问题。文章介绍了Sinopia的基本概念、部署步骤,包括安装、配置npm代理、用户管理,以及安全性和配置访问权限等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址 https://github.com/jindada/blog/issues/1

为什么需要搭建私有npm

  • 私有的包只想在内部使用,还不想用git+ssh的方式,感觉不够优雅,并且还想可以配置相应的权限
  • npm上的包下载很慢,想把已经下载过的包缓存在服务器上,下次 下载时首先检查更新,如果没更新直接走缓存
  • 希望下载的时候,公共包走公共仓库,私有包走内部服务器的私有仓库

为什么写这篇文章

写这边文章的时候,已经看到大神们写过的几篇不错的文章,这里想集中汇总一下,并且说明一下已有文章没有提到的坑
下面列举一下感觉不错的文章:
+ 使用Sinopia搭建私有的npm仓库
+ Sinopia | 从零开始搭建npm仓库

介绍sinopia

sinopia 的介绍与优缺点就不详细介绍了 上面2篇文章都有很详细的说明

部署安装和使用

安装 sinopia 与启动(假设你已经安装过node环境)
$ npm install sinopia -g
$ sinopia

然后打开浏览器 访问地址 http://localhost:4873/ 正常显示即成功, 4873是默认端口

配置npm代理

sinopia启动之后,首先通过 npm set registry http://localhost:4873/ 来设置客户端使用的npm代理,然后就能正常使用了

添加用户与登录
$ npm adduser --registry http://localhost:4873 // 按照提示输入

$ npm login // 按照提示输入

登录成功之后,你就可以执行npm publish发布到这个私有npm上面啦,刷新http://localhost:4873/就可以看到你刚刚上传的包啦。

需要注意:你无法发布一个包名+版本号已经存在于公共仓库里的包,因为发布的时候,sinopia 首先会去你配置的公共仓库(可以通过配置文件指定,默认是http://registry.npmjs.org)去check,check通过后才允许上传包到 sinopia

配置

Sinopia的特点是,你在哪个目录运行,它的就会在对应的目录下创建自己的文件。在没有指定配置文件的情况下,默认目录是安装目录 你可以通过sinopia -c path/config.yaml 来指定目录运行

目录下默认有两个文件:config.yaml和storage ,htpasswd 是添加用户之后自动创建的。

config.yaml — 配置访问权限,代理,文件存储路径等所有配置信息的
storage — 缓存npm包目录
htpasswd — 保存用户的账号密码等信息

config.yaml :配置访问权限,代理,文件存储路径等所有配置信息的
# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/rlidwka/sinopia
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值