美文网首页
npm私有库服务搭建及规范定制

npm私有库服务搭建及规范定制

作者: Leiyansen | 来源:发表于2018-12-18 11:18 被阅读0次

npm私有库服务


简介

公司出于自身隐私保护需要,不想把自己的代码开源到包管理区,但是又急需一套完整包管工具,来管理越来越多的组件、模块和项目。对于前端,最熟悉的莫过于npm,bower等;但是bower的市场兼容性明显没有npm强壮,加之commonjs规范的日益成熟。npm应该是前端包管理的不二选择。

公司对于搭建本地私有npm库有如下要求:

  1. 私有包托管在内部服务器中
  2. 项目中使用了公共仓库上的公共包,也使用了内部服务器上的私有包
  3. 希望下载的时候,公共包走公共仓库,私有包走内部服务器的私有仓库
  4. 服务器硬盘有限,希望只缓存下载过的包,而不是全部同步。
  5. 对于下载,发布npm包有对应的权限管理,安装方便,配置简单,依赖少。

安装私有包流程

image

服务搭建

node + npm + verdaccio + pm2 + nrm

Sinopia Verdaccio是一个零配置的私有的带缓存功能的npm包管理工具

PS: Sinopia多年未更新,Verdaccio是基于Sinopia重构的,注入了更多活力

# config
$ /home/ubuntu/.config/verdaccio/config.yaml
# password
$ /home/ubuntu/web_npm/verdaccio/htpasswd
# storage
$ /home/ubuntu/web_npm/verdaccio/storage

pm2 托管Sinopia进程可以保证进程永远存活
nrm 便于查看和切换当前使用的registry
verdaccio-delegated-auth 是为了让服务支持自定义验证的插件


标准定制

# Sinopia config.yaml
# path to a directory with all packages
storage: /home/ubuntu/web_npm/verdaccio/storage
auth:
  # htpasswd:
    # file: ./htpasswd
    # max_users: -1
    # mix_users: 1000
 delegated-auth:
    url: https://your-account-server/
    user_key: name # username field, default: username
    pwd_key: password # password field, default: password

# a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: http://registry.npm.taobao.org/

packages:
  '@company/*':
    # scoped packages
    access: $authenticated
    publish: $authenticated
  '*':
    # keywords: "$all", "$anonymous", "$authenticated"
    access: $all
    publish: $all
    proxy: npmjs

# log settings
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: sinopia.log, level: info}
listen: 0.0.0.0:4873
  1. 为避免客户端创建虚假用户、或失误创建用户,会关闭注册用户功能max_users: -1,采用服务端提供用户账户配置file: ./htpasswd的方式新增用户。
    已经为verdaccio编写自定义验证插件,使用自己的账户系统的用户名和密码进行登录验证verdaccio-delegated-auth
  2. 公司内部发布包到私有服务需要加上前缀@company/${app},例如@company/lodash。前缀包@company/*必须经过账户验证后才能正常执行安装或发布。(company指公司名称)
  3. 发布内部私有包必须有项目自述README,内容必须包含:
    • 基本描述
    • 使用方式
    • 源码地址

客户端使用

  1. 安装nrm新增私有服务代理,使用自己的账户系统账号登录使用。
  2. 浏览器访问私有服务Socket,查看所有内部私有包。
$ nrm add company http://126.*.*.99:4873/
$ nrm use company
$ npm login

安全

网关

更多

Docker + S3

相关文章

  • npm私有库服务搭建及规范定制

    npm私有库服务 简介 公司出于自身隐私保护需要,不想把自己的代码开源到包管理区,但是又急需一套完整包管工具,来管...

  • 私有npm服务器搭建

    私有npm服务器搭建 标签(空格分隔): Node.js 私有npm服务器搭建 本次搭建是在ubuntu环境下搭建...

  • 搭建私有npm服务器教程

    私有npm服务器搭建 标签(空格分隔): Node.js 私有npm服务器搭建 本次搭建是在ubuntu环境下搭建...

  • 搭建NPM私有库

    用Sinopia搭建私有库 搭建一个无需配置的本地npm仓库,你不必安装和复制整个CouchDB数据库。Sinop...

  • 用sinopia在linux系统中搭建npm私有库

    公司对于搭建本地私有npm库有如下要求: 私有包托管在内部服务器中 项目中使用了公共仓库上的公共包,也使用了内部服...

  • 前端架构之路(7) - 私有 npm 仓库

    私有 npm 仓库 1. “私有 npm 仓库” 有何用 组件化之后,搭建 “私有 npm 仓库” 是个不错选择。...

  • 搭建私有代码仓库服务器 Sinopia

    配置 私有仓库 在 CentOS 6 上配置私有 NPM 仓库 使用Sinopia搭建私有的npm仓库

  • cnpm私有库使用方法

    最近公司需要搭建一套公司自有的 npm 私有库, 于是用到了cnpm的解决方案 cnpm是企业内部搭建npm镜像和...

  • 搭建npm私有库工具

    sinopia (已不在维护) verdaccio(从sinopia frok代码继续维护) 网址:https:/...

  • verdaccio搭建私有npm库

    随着业务需求的增加,项目中出现了很多相同可以重复利用的组件,而这些组件又跟项目密切相关不能公开,所以根据这种情况可...

网友评论

      本文标题:npm私有库服务搭建及规范定制

      本文链接:https://www.haomeiwen.com/subject/irvkkqtx.html