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

    正文概述 掘金(All_Is_Well)   2021-02-20   1179

    基于windows平台,使用verdaccio搭建一个内网的npm私有服务器,用来管理公司前端团队的npm包。

    一、verdaccio安装与相关配置

    1.1 安装

    使用 npm 安装 Verdaccio ,需要全局安装,所以注意权限问题。

    npm install -g verdaccio
    

    1.2 运行

    使用verdaccio命令启动运行

    verdaccio
    

    运行结果

     warn --- config file  - C:/Users/Administrator/AppData/Roaming/verdaccio/config.yaml   # 配置文件路径
     warn --- Plugin successfully loaded: htpasswd
     warn --- Plugin successfully loaded: audit
     warn --- http address - http://localhost:4873/ - verdaccio/4.4.0
    

    浏览器访问 http://localhost:4873/ 即可打开npm仓库地址

    1.3 配置

    通过运行结果,找到配置文件路径 C:/Users/Administrator/AppData/Roaming/verdaccio/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/verdaccio/verdaccio/tree/master/conf
    #
    
    # path to a directory with all packages
    storage: D:/npm-repo
    # path to a directory with plugins to include
    plugins: ./plugins
    
    web:
      title: Verdaccio
      # comment out to disable gravatar support
      # gravatar: false
      # by default packages are ordercer ascendant (asc|desc)
      # sort_packages: asc
      # convert your UI to the dark side
      # darkMode: true
    
    # translate your registry, api i18n not available yet
    # i18n:
    # list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations
    #   web: en-US
    
    auth:
      htpasswd:
        file: ./htpasswd
        # Maximum amount of users allowed to register, defaults to "+inf".
        # You can set this to -1 to disable registration.
        # max_users: 1000
    
    # a list of other known repositories we can talk to
    uplinks:
      npmjs:
        url: https://registry.npmjs.org/
    
    packages:
      '@*/*':
        # scoped packages
        access: $all
        publish: $authenticated
        unpublish: $authenticated
        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: $all
    
        # allow all known users to publish/publish packages
        # (anyone can register by default, remember?)
        publish: $authenticated
        unpublish: $authenticated
    
        # if package is not available locally, proxy requests to 'npmjs' registry
        proxy: npmjs
    
    # You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
    # A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
    # WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
    server:
      keepAliveTimeout: 60
    
    middlewares:
      audit:
        enabled: true
    
    # log settings
    logs:
      - { type: stdout, format: pretty, level: http }
      #- {type: file, path: verdaccio.log, level: info}
    #experiments:
    #  # support for npm token command
    #  token: false
    #  # support for the new v1 search endpoint, functional by incomplete read more on ticket 1732
    #  search: false
    #  # disable writing body size to logs, read more on ticket 1912
    #  bytesin_off: false
    
    # This affect the web and api (not developed yet)
    #i18n:
    #web: en-US
    listen: 0.0.0.0:4873
    

    需要配置参数有以下几个

    1.3.1 storage

    存放npm包的存储地址,可以在本地磁盘中新建一个目录,单独进行存储。

    # path to a directory with all packages
    storage: D:/npm-repo
    

    1.3.2 uplinks

    在本地npm包中找不到时,默认在其他仓库进行install,默认配置从npm官方拉取。

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

    1.3.3 packages

    设定包发布与使用的权限,是否代理到公有npm仓库等

    packages:
      '@xdh/*':
        # scoped packages
        access: $all
        publish: $authenticated
        unpublish: $authenticated
    
      '**':
        access: $all
        publish: $authenticated
        unpublish: $authenticated
        proxy: npmjs
    

    @xdh前缀的包为私有包,不会代理到外部,proxy: npmjs 指明了如果该包上传则会被代理到npm公有仓库,如果在下载某个不包含@xdh前缀的包时,会自动代理到npm公有仓库查找资源并下载,并且默认会将拉取的资源缓存到我们前面指定的 storage 文件夹中。

    1.3.4 listen

    设置内网可访问及端口号,内网可通过本机ip进行访问

    listen:
    	0.0.0.0: 3000
    

    设置完毕,重启verdaccio,即可访问使用。

    二、pm2管理服务

    为了能使服务后台运行,不受窗口关闭的影响,使用pm2进行服务管理

    2.1 安装pm2

    npm install pm2 -g
    

    2.2 运行verdaccio

    直接运行pm2 start verdaccio,不能启动运行的话,使用如下方式启动

    // 启动路径为全局node_modules下verdaccio\bin\verdaccio运行
    pm2 start C:\Users\Administrator\AppData\Roaming\npm\node_modules\verdaccio\bin\verdaccio
    

    2.2 查看运行状态

    查看运行状态status: online,即为正常启动,可以访问使用

    pm2 list
    

    npm私有服搭建(verdaccio)

    2.3 停止运行

    pm2 stop verdaccio
    

    运行状态status: stoped

    2.4 删除服务

    pm2 delete verdaccio
    

    三、nrm管理npm源

    一般在本地会安装多个npm源,可以使用nrm对其进行管理与切换。

    3.1 安装

    npm install nrm -g
    

    3.2 增加本地npm源

    nrm add localnpm *.*.*.*:4873
    

    3.4 查看是否添加成功

    nrm ls
    
    // 源列表
    * npm -------- https://registry.npmjs.org/
      yarn ------- https://registry.yarnpkg.com/
      cnpm ------- http://r.cnpmjs.org/
      taobao ----- https://registry.npm.taobao.org/
      nj --------- https://registry.nodejitsu.com/
      npmMirror -- https://skimdb.npmjs.com/registry/
      edunpm ----- http://registry.enpmjs.org/
      localnpm --- http://*.*.*.*:4873/
    

    3.5 切换至本地源

    nrm use localnpm
    
    // 源列表
      npm -------- https://registry.npmjs.org/
      yarn ------- https://registry.yarnpkg.com/
      cnpm ------- http://r.cnpmjs.org/
      taobao ----- https://registry.npm.taobao.org/
      nj --------- https://registry.nodejitsu.com/
      npmMirror -- https://skimdb.npmjs.com/registry/
      edunpm ----- http://registry.enpmjs.org/
    * localnpm --- http://*.*.*.*:4873/
    

    四、创建本地npm用户

    需要创建本地npm用户,用于上传和管理npm包,使用npm adduser创建用户,输入用户名、密码、邮箱。

    npm adduser
    Username: yourname
    Password: *
    Email: *
    

    记录设置的用户信息,下一节上传会用到。

    五、新建npm包并上传

    新建@xdh/test项目,项目根目录新增index.js文件,npm 初始化项目,输入提示信息

    npm init 
    

    上传至本地仓库,在项目根目录下运行以下命令:

    // 登录npm 
    // 根据提示输入账户/密码/邮箱
    npm login
    
    // 登录成功,发布
    npm publish
    

    刷新本地链接,可以看到npm包已经发布成功。

    npm私有服搭建(verdaccio)

    查看本地磁盘仓库strage文件,是否已存储成功

    npm私有服搭建(verdaccio)

    六、安装本地依赖

    确保当前npm源已切换到localnpm

    npm install @xdh/test -S
    

    npm私有服搭建(verdaccio)

    至此内网npm私服已经搭建完成,可以上传和使用私有包。


    起源地下载网 » npm私有服搭建(verdaccio)

    常见问题FAQ

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

    发表评论

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

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

    联系作者

    请选择支付方式

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