使用Sinopia搭建私有npm仓库

使用Sinopia搭建私有npm仓库

在用npm装包的时候,每次都要下载一大堆,慢且不说,npm还老被墙,所以就想到在公司内部搭建npm仓库镜像。大概看了几个,觉得Sinopia最简单也好用,所以就使用Sinopia搭建仓库吧。

安装

sudo npm install -g sinopia

配置与运行

安装完成后,暂时不知道配置文件在哪里,可以先运行一下 sinopia,比如:

$ sinopia
 warn  --- config file  - /home/<user>/.config/sinopia/config.yaml
 warn  --- http address - http://localhost:4873/

从上面命令输出可以看到配置文件路径:/home//.config/sinopia/config.yaml

下面修改配置文件,在最后加上一行 “listen: 0.0.0.0:4873”,目的是为了可以从别的机器上也能访问 sinopia 仓库。

#
# 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/tree/master/conf
#

# path to a directory with all packages
storage: /home/jhadmin/.local/share/sinopia/storage

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

  '*':
    # 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 packages
    # (anyone can register by default, remember?)
    publish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs

# log settings
logs:
  - {type: stdout, format: pretty, level: info}
  #- {type: file, path: sinopia.log, level: info}

listen: 0.0.0.0:4873

修改完成后再次启动 Sinopia 服务,如下:

$ sinopia
 warn  --- config file  - /home/<user>/.config/sinopia/config.yaml
 warn  --- http address - http://0.0.0.0:4873/

使用

私有仓库已经有了,下面来看看怎么使用,这里我们使用了nrm来管理私有仓库。(可以参考我的前一篇博客)

添加私有仓库

$ nrm add mynpm http://192.168.0.123:4873

使用私有仓库

$ nrm use mynpm

测试私有仓库

$ mkdir test
$ cd test
$ npm install webpack # 第一次安装比较慢
...

$ rm -rf webpack
$ npm install webpack # 第二次安装就比较快了
...
上一篇:ptootcms在列表页添加评论功能


下一篇:DataGuard主庫報歸檔錯誤