最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Verdaccio 搭建本地私有NPM仓库

    正文概述 掘金(Mongola)   2021-01-02   714

    私有Npm仓库搭建

    什么是私有Npm仓库?

    私有Npm仓库是专门给一些公司内部开发者提供的私有Npm包管理仓库,类似还有私有Git仓库

    为什么要用私有Npm仓库?

    公司内部开发的包有可能是不开源共享的,只是给公司内部人员使用的,那么这些包就不可能上传到Npm官网上

    虽然Npm官网也支持私有,但是需要收费。

    这时候本地私有Npm仓库就解决了这个问题,本地私有仓库具有免费、本地化、私有化、高速下载的特点。

    因为部署在本地,所以下载包的速度是非常快的。

    Verdaccio 搭建本地私有NPM仓库

    verdaccio

    安装

    npm install verdaccio -g
    

    启动

    verdaccio
    # 指定配置启动
    verdaccio -c ./config.yaml
    # 手动指定端口
    verdaccio -l 0.0.0.0:9000
    

    出现下面的内容说明启动成功

    warn --- config file  - /home/root/.config/verdaccio/config.yaml
    warn --- http address - http://localhost:4873/ - verdaccio/4.10.0
    

    启动后会在启动用户的家目录生成一个配置文件 config.yaml

    例如:/home/root/.config/verdaccio/config.yaml

    主要配置文件

    • config.yaml 启动后生成的是仓库的配置文件,仓库的配置都写在里面
    • htpasswd 当有用户注册后会生成的用户账号信息文件,记录账号和密码以及创建日期
    • storage 所有上传的包都保存在这

    配置项

    在配置前请一定注意配置文件内的缩进,不然会启动会报错

    打开 config.yaml 配置文件,我们可以看到下面几项

    • storage 设置用户上传包的存放目录
    • plugins 插件目录
    • web 前端页面的配置,设置访问页的标题、图片等
    • i18n 设置页面的语言
      • web 设置web的默认语言 zh-CN
    • auth 设置账号相关的内容
      • htpasswd 设置账号密码相关
        • file 存放账号密码的文件目录
        • max_user 最大注册用户,-1 代表禁止注册,但可以手动在账号文件添加
    • uplinks 设置上游匹配,主要用于包匹配不到时,系统该往哪里去找这个包
    • packages 包相关配置,用于设置包的上传、下载、访问的权限控制
      • access 可访问权,能否下载
      • publish 发布权
      • unpublish 取消发布权
      • 权限的控制大致有三种
        • $all 所有登录、未登录者都可以访问
        • $authenticated 只有登录者可以访问
        • a、b、v等 指定用户名、只有该用户可以访问

    下面提供一份简易的配置

    # 设置保存放目录
    storage: ./storage
    plugins: ./plugins
    web:
      title: Npm
    # 设置中文显示
    i18n:
      web: zh-CN
    # 设置两个上游
    uplinks:
      npmjs:
        url: https://registry.npmjs.org/
        agent_options:
          keepAlive: true
          maxSockets: 40
          maxFreeSockets: 10
      cnpmjs:
        url: http://r.cnpmjs.org/
        agent_options:
          keepAlive: true
          maxSockets: 40
          maxFreeSockets: 10
    # 添加一项 @my/* 包的权限控制,只允许登录的用户可以下载上传
    packages:
      '@my/*':
        access: $authenticated
        publish: $authenticated
        unpublish: $authenticated
    
    # 通配项,即上面配置不到的包都走这个
      '**':
        access: $all
        publish: $authenticated
        unpublish: $authenticated
        # 代理上游、如果本地找不到这个包应该去哪找,可以设置多个,按顺序查找
        proxy: cnpmjs npmjs
    # 设置监听端口、以及支持IP访问
    listen:
      0.0.0.0:3000
    

    注册账号

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

    执行后会让你输入账号、密码、邮箱 一定要记住

    在开发中使用

    nrm 仓库源管理工具

    使用 nrm 可以非常方便的在不同源之间来回切换

    Verdaccio 搭建本地私有NPM仓库

    安装

    npm install -g nrm
    

    添加仓库源

    nrm add [name] [url]
    # nrm add mynpm http://127.0.0.1:3000
    

    使用仓库源

    nrm ls // 列出仓库源
    nrm use [name] // 选择仓库源
    

    发布、取消发布NPM包

    发布NPM包时一定要 nrm ls 查看是否选中了私有仓库源,否则将会发布到别的NPM仓库中(如果登录过的话)

    npm publish
    npm unpublish
    

    下载私有NPM包

    npm install xxx --registry http://127.0.0.1:3000
    # 或
    nrm use 私有源
    npm install xxx
    

    **注意:**如果换成私有源后使用 npm install 下载非本地包,这时 proxy 代理上游就会起作用,系统会去代理上游选择包,直到最后一个代理。


    起源地下载网 » Verdaccio 搭建本地私有NPM仓库

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元