首页 > 其他分享 >Sinopia 搭建npm 私有仓库

Sinopia 搭建npm 私有仓库

时间:2023-08-11 12:38:47浏览次数:33  
标签:npm users 私有 Sinopia publish packages config sinopia

sinopia是一个零配置的私有的带缓存功能的npm包管理工具,使用sinopia,你不用安装CouchDB或MYSQL之类的数据库,Sinopia有自己的迷你数据库,如果要下载的包不存在,它将自动去你配置的npm地址上去下载,而且硬盘中只缓存你现在过的包,以节省空间。

优点

  1. 不同步拉取npm库,占据大量硬盘,没有硬盘被撑爆的问题;
  2. 安装配置极其简单,不需要数据库;
  3. 支持配置上游registry配置,一次拉取即缓存;
  4. 支持forever及pm2守护进程管理;

安装 node

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash  //下载nvm
source  /root/.bashrc //执行
nvm install stable //下载node
npm -v
npm i sinopia-g //或者
npm i sinopia-npm -g

如果报错 以下错误不要慌

Sinopia 搭建npm 私有仓库_bash

sudo chmod -R 777 /root //修改权限

然后继续执行安装

npm i sinopia -g

启动 sinopia

sinopia

成功的标志

Sinopia 搭建npm 私有仓库_vim_02

配置 sinopia

vim 打开 sinopia 配置文件 config.yaml

vim /root/.config/sinopia/config.yaml

配置信息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/rlidwka/sinopia/tree/master/conf
#

# path to a directory with all packages
storage: ./storage  #npm包存放的路径

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: -1  #默认为1000,改为-1,禁止注册

# a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: http://registry.npm.taobao.org/  #默认为npm的官网,由于国情,修改 url 让sinopia使用 淘宝的npm镜像地址

packages:  #配置权限管理
  '@*/*':
    # scoped packages
    access: $all  #表示哪一类用户可以对匹配的项目进行安装 【$all 表示所有人都可以执行对应的操作,$authenticated 表示只有通过验证的人可以执行对应操作,$anonymous 表示只有匿名者可以进行对应操作(通常无用)】
    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  #如其名,这里的值是对应于 uplinks

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

# you can specify listen address (or simply a port)
listen: 0.0.0.0:8080  #默认没有,只能在本机访问,添加后可以通过外网访问

再次执行 sinopia 操作 重启

sinopia

访问 http://39.98.178.141:8080 地址出现下图 ,sinopia 安装成功了!

Sinopia 搭建npm 私有仓库_NPM_03

添加用户

配置账号 (用户名:admin;密码:123456;邮箱:[email protected]参考

htpassw

很明显密码被加密了,但是加密算法很简单,就是简单的 SHA1 哈稀之后再转换成 Base64,后面加上时间戳。

vim /root/.config/sinopia/htpassw

复制一下代码

admin:{SHA}fEqNCco3Yq9h5ZUglD3CZJT4lBs=:autocreated 2017-03-21T03:15:14.332Z

本地切换 npm 镜像源发包

npm install -g nrm

添加 sinopia 仓库地址

nrm add sinopia http://39.98.178.141:8080/

切换私有仓库

nrm use sinopia

发包

新建项目文件夹进入文件夹

cd xxonly
npm init

进入 package.json 文件

"name": "**only", //必填项目名称
 "version": "1.0.3" //必填版本信息

登录 npm

npm adduser //根据提示注册 用户名、密码和邮箱
//或者
npm login //输入用户名、密码和邮箱 (用户名:admin;密码:123456;邮箱:[email protected]

更新 npm 包 修改 package.json 文件夹中的 version 版本信息

执行发包

npm publish

如果你看到了以下页面至此发包成功!

Sinopia 搭建npm 私有仓库_NPM_04

标签:npm,users,私有,Sinopia,publish,packages,config,sinopia
From: https://blog.51cto.com/u_11309339/7045817

相关文章

  • npm npx nvm nrm 你分的清吗
    npm是什么?npx是什么?nvm又是什么?nrm又是什么?你分的清吗npmnpm的全称是NodePackageManager是JavaScript世界的包管理工具,并且是Node.js平台的默认包管理工具。通过npm可以安装、共享、分发代码,管理项目依赖关系。常用命令npminstall安装模块npmuninstall卸载模......
  • Ubuntu 22.04安装Node.JS和NPM
    sudoaptpurgenodejssudoaptautoremovesudoaptupdatesudoaptinstall-ycurlcurl-fsSLhttps://deb.nodesource.com/setup_18.x|sudo-Ebash-sudoaptinstallnodejsbuild-essential-y......
  • 私有化部署数据算力云平台
    近日,据某咨询机构发布的一份调查报告,中国国内有近50%的云客户,主要是大中型企业,他们出于安全和隐私方面的考虑,避免与云服务厂商深度绑定,不会购买云服务厂商提供的数据云服务,而是更倾向租用云服务厂商的裸机资源,然后在上面部署自己自主可控的数据计算系统和应用。如果这项报道属实的......
  • npm uninstall -g @vue/cli 命令卸载脚手架失败
     解决方法如下:1、执行:npmconfigls-l命令;在展示信息的userconfig键值中找到.npmrc文件的路径;将.npmrc文件删除。查询结果如下: 2、执行:wherevue命令;删除查询出的两个文件。文件如下图: 3、执行:vue-V命令。发现vue命令已经不可用,说明已经删除成功。 ......
  • iOS 子工程(下沉组件 私有库) 调用文件、图片 等资源 方法
    发现问题:在子工程里面使用 [[NSBundlemainBundle]pathForResource:ofType:] 不能找到目标资源文件原因:[[NSBundlemainBundle]pathForResource:ofType:]是获取主程序包(MainBundle)中资源文件路径的方法。主程序包是指你的应用程序本身,而不包括子工程或子项目。那么要......
  • python打包成sdk上传到私有仓库和使用
    我们已经学习了如何运行一个python项目(当我们有它的源码文件py文件的时候)。python的使用和运行我们有一个项目,需要打包到其他机器上运行,如果每次都是复制整个项目源码就显得有点笨拙。实现这个需求有很多种方案。例如:PyInstaller可参考链接:https://ningyu1.github.io/site/po......
  • 郭盛华:npm 软件包窃取开发人员的敏感数据
    网络安全研究人员在npm软件包注册表中发现了一系列新的恶意软件包,这些软件包旨在窃取敏感的开发人员信息。所有模块的一个共同功能是能够启动JavaScript(“index.js”),该JavaScript可以将有价值的信息泄露到远程服务器。国际知名白帽黑客、东方联盟创始人郭盛华表示:“index......
  • Nodejs 第四章(Npm install 原理)
    在执行npminstall的时候发生了什么?首先安装的依赖都会存放在根目录的node_modules,默认采用扁平化的方式安装,并且排序规则.bin第一个然后@系列,再然后按照首字母排序abcd等,并且使用的算法是广度优先遍历,在遍历依赖树时,npm会首先处理项目根目录下的依赖,然后逐层处理每个依赖包的依......
  • Nodejs 第五章(Npm run 原理)
    npmrunxxx发生了什么按照下面的例子npmrundev举例过程中发生了什么读取packagejson的scripts对应的脚本命令(dev:vite),vite是个可执行脚本,他的查找规则是:先从当前项目的node_modules/.bin去查找可执行命令vite如果没找到就去全局的node_modules去找可执行命令vite如果还......
  • Nodejs 第七章(发布npm包)
    发布npm的包的好处是什么方便团队或者跨团队共享代码,使用npm包就可以方便的管理,并且还可以进行版本控制做开源造轮子必备技术,否则你做完的轮子如何让别人使用难道是U盘拷贝?面试题我面字节的时候就问到了这个增加个人IP让更多的人知道你的技术能力和贡献发布前准备工作npmadduser......