公司内部前端组件或库的共享等,搭建一个
npm私有库就很方便,现在中大型公司也基本都有自己的npm私有库,这篇文章,和大家一起共同搭建一个npm私有库,共同学习
使用的windows版本的 docker Desktop, 可以直接去 docker Desktop 官方网站去下载,下载完成后正常安装就可以了。
或者使用 winget 安装
winget install Docker.DockerDesktop直接使用各个发行版对应的 pkg manangment 安装,由于本人最熟悉ubuntu,下面给出ubuntu下的安装命令
#Ubuntuapt install dockerapt install docker-compose // 如需要使用docker-compose可以使用此命令安装mkdir /opt/Docer-container/verdacciocd /opt/Docer-container/verdacciomkdir conf && mkdir storage && mkdir pluginscd ./storage && mkdir data && touch htpasswdcd ../conf touch config.yamlvim config.yaml# 存放软件所有软件包的目录storage: /verdaccio/storage/data# 存放所有插件的目录plugins: /verdaccio/pluginsweb: # 网站Title title: Verdaccio # 禁用Gravatar头像 # gravatar: false # 排序方式 asc|desc # sort_packages: asc # 是否启用暗黑模式 # darkMode: true # logo地址 # logo: http://somedomain/somelogo.png # favicon地址 # favicon: http://somedomain/favicon.ico | /path/favicon.ico# i18n翻译配置# i18n:# 可用列表见:https://github.com/verdaccio/ui/tree/master/i18n/translations# web: en-USauth: htpasswd: file: /verdaccio/storage/htpasswd # 最大注册用户数,默认为 "+inf". # 可用通过设置为-1禁止注册 # max_users: 1000# 上游npm库,可以设置多个uplinks: npmjs: url: https://registry.npmjs.org/ taobao: url: https://registry.npmmirror.com/packages: # 作用域包 '@*/*': # 允许所有人访问 access: $all # 注册用户可访问 publish: $authenticated # 注册用户可访问 unpublish: $authenticated proxy: npmjs '**': # 默认情况下所有用户 (包括未授权用户) 都可以查看和发布任意包 # 你可以指定 用户名/分组名 (取决于你使用什么授权插件,默认的授权插件是内置的 htpasswd) # 访问权限有三个关键词: "$all", "$anonymous", "$authenticated" # $all 表示不限制,任何人可访问; # $anonymous 表示未注册用户可访问; # $authenticated 表示只有注册用户可访问 access: $all # 允许所有注册用户发布/撤销已发布的软件包 # (注意:默认情况下任何人都可以注册) publish: $authenticated unpublish: $authenticated # 如果私有包服务不可用在本地,则会代理请求到'npmjs' # proxy 可以有多个值,多个值用空格分开 proxy: taobao npmjs# 您可以指定传入连接的HTTP /1.1服务器保持活动超时(以秒为单位)。# 值为0会使http服务器的行为类似于8.0.0之前的Node.js版本,后者没有保持活动超时。# 解决方法:通过给定的配置可以解决以下问题server: keepAliveTimeout: 60# 中间件middlewares: audit: enabled: true# 日志设置logs: { type: stdout, format: pretty, level: http }# 开放远程访问,允许所有IPlisten: - 0.0.0.0:4873docker run -it --name verdaccio \-p 4873:4873 \-v /opt/Docker-container/Verdanccio/conf:/verdaccio/conf \-v /opt/Docker-container/Verdanccio/storage:/verdaccio/storage \-v /opt/Docker-container/Verdanccio/plugins:/verdaccio/plugins \verdaccio/verdaccio运行成功后就可以通过
http://服务器ip:4873访问npm私有库了。
报错处理:
如果提示 fatal--- cannot open config file /verdaccio/conf/config.yaml: Error: CONFIG: it does not look like a valid config file, 可以执行下面的命令
chcon -Rt container_file_t ./conf更多解决方法请查看官方文档
http://192.168.188.164:4873/#npm和pnpm 设置(pnpm使用npm配置的源)npm config set registry http://192.168.188.164:4873/# yarn 设置yarn config set registry http://192.168.188.164:4873/ #-g是全局设置直接把默认的npm源替换为我们私有库,但是多个源的时候不太好管理。所以推荐使用nrm来管理我们的npm源。
nrm 管理 npm 源# 全局安装nrm$ npm i -g nrm# 添加私有库$ nrm add vnpm http://192.168.188.164:4873# 查看现有的npm源$ nrm ls npm ---------- https://registry.npmjs.org/ yarn --------- https://registry.yarnpkg.com/ tencent ------ https://mirrors.cloud.tencent.com/npm/ cnpm --------- https://r.cnpmjs.org/ taobao ------- https://registry.npmmirror.com/ npmMirror ---- https://skimdb.npmjs.com/registry/ private ------ http://192.168.188.164:10086/repository/npm/* vnpm --------- http://192.168.188.164:4873/# 设置npm源$ nrm use vnpm管理
yarn的源,可以使用yrm来管理;用法同nrm
# 注册用户$ npm adduser复制代码# 登录用户$ npm login# 查看当前登录用户$ npm who am i复制代码# 发布当前包 $ npm publish到此,所有的安装,注册用户,发布包流程都已经完成了,各位小伙伴如果有什么问题可以私聊/留言。