首页 > 其他分享 >Gitlab搭建npm仓库

Gitlab搭建npm仓库

时间:2025-01-15 09:06:37浏览次数:1  
标签:npm notice gitlab frontend lib helper Gitlab 搭建

由于图片和格式解析问题,为了更好阅读体验可前往 阅读原文

:::warning
使用gitlab的仓库注册表特性需要版本14.0+,如果你的版本比较低,请先根据自己的需求合理升级后再使用
:::

npm私有仓库的搭建方式有很多种,比如使用docker(阅读此篇),这里讲述如何使用gitlab作为npm仓库方法,gitlab仓库有多种使用方法,这里都会讲解到。接下来就来学习下如何使用gitlab搭建npm仓库。

创建组与项目

为了方便演示这里从头讲起,分别创建组、项目

  1. 创建组
    image-20230321112321027
  2. 创建项目
    image-20230321112503456
    image-20230321112816193

初始化项目

本地创建一个简单的项目,推送到gitlab项目中

# 创建路径
mkdir gitlab-frontend-helper-lib && ccd gitlab-frontend-helper-lib

# 初始化 npm
npm init

package.json文件内容实例:

{
  "name": "helper",
  "version": "0.0.1",
  "description": "前端通用库",
  "main": "index.js",
  "keywords": [],
  "author": "",
  "license": "ISC"
}

创建index.js文件:

const add = (x, y) => x + y;
const minus = (x, y) => x - y;

module.exports = { add, minus };

推送项目到gitlab

git init

cat > .gitignore << EOF
node_modules
.DS_Store
EOF

git add .
git cm -m '初次提交(#0)'
git remote add origin http://192.168.10.10/frontend-lib/helper.git
git push --set-upstream origin main

项目作为依赖

你可以在某个项目中把刚刚上传的项目作为依赖安装,为了方便管理可以对上传的库打上tag,然后项目中可以下载指定tag

# gitlab-frontend-helper-lib 打tag
git tag 0.0.1
git push --tags

新建一个项目使用当前库:

mkdir gitlab-npm && cd gitlab-npm 

npm init -y

手动在package.json文件中添加待安装的依赖项目

{
  "name": "gitlab-npm",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    // 这里指定 helper依赖的地址为 git+http://192.168.10.10/frontend-lib/helper.git,并使用 tag 0.0.1版本
    "helper": "git+http://192.168.10.10/frontend-lib/helper.git#0.0.1"
  },
  "description": ""
}

安装当前项目依赖:

➜ npm i
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN use-gitlab-npm@1.0.0 No description
npm WARN use-gitlab-npm@1.0.0 No repository field.

added 1 package in 0.577s

验证helper包,创建js文件

// index.js
const helper = require("helper");
console.log(helper.add(1, 2));

执行打印

node index.js // 3

这种方式的使用比较简单,不过不够灵活,接下来使用gitlab官方的仓库注册表

Gitlab软件库

Gitlab支持包仓库注册了,也及时可以当做包仓库使用,需要版本14.0+,这里演示npm仓库注册表来管理npm包

注册表类型

gitlab支持两种的仓库注册表项目级别和示例级别(组级别),两者对于包的上传没有什么影响,只是作用于包的安装,包的注册表名字是scope形式,也就是说包名是@scope/packageName这种形式

  • 实例级别:你可以理解为group级别,必须提供一个范围的scope名字,当你需要在不同的组创建包时,可以使用@scope/packageName 引入,你可以为不同的组设置权限,公开使用
  • 项目级别:注册表 URL仅针对该范围更新。在项目级别注册包时,您可以使用/附加您自己的唯一范围到您的包名称

发布准备

这里修改前面的仓库

// package.json
{
  // 包名
  "name": "@frontend-lib/helper",
  // 包版本
  "version": "0.0.1",
  "description": "前端通用库",
  "main": "index.js",
  "keywords": [],
  "author": "",
  "license": "ISC"
}

创建.npmrc文件:

#@scope:registry=https://your_domain_name/api/v4/projects/your_project_id/packages/npm/
#//your_domain_name/api/v4/projects/your_project_id/packages/npm/:_authToken="${NPM_TOKEN}"
# 格式:
#  - scope:你的scopename
#  - your_domain_name:你的gitlab域名或ip
#  - your_project_id:你的仓库id
#  - NPM_TOKEN:用户发布的用户token

# 示例
@frontend-lib:registry=http://192.168.10.10/api/v4/projects/4/packages/npm/
# 你可以直接将token写在这里
//192.168.10.10/api/v4/projects/4/packages/npm/:_authToken=HUzUdsos4WfnsgfUBi6j

记得忽略掉.npmrc追踪:

# .gitignore
.npmrc

发布npm包

发布npm包可以手动发布也可以自动构建发布,两种方式都演示下。本次演示项目上传至github了

手动发布

创建token

image-20230321124138019

拿到token后将其写入.npmrc文件中

# 如果没有将token写入npmrc,可以用命令行传入
NPM_TOKEN=HUzUdsos4WfnsgfUBi6j npm publish

# 这里写入了npmrc,然后发布
➜ npm publish
npm notice 
npm notice 

标签:npm,notice,gitlab,frontend,lib,helper,Gitlab,搭建
From: https://www.cnblogs.com/98kk/p/18672061

相关文章

  • Datawhale 组队学习wow-agenttask01 openai库搭建Al Agent
    Datawhale组队学习wow-agentDatawhale项目链接:https://www.datawhale.cn/learn/summary/86笔记作者:博客园-岁月月宝贝......
  • windows server2016搭建AD域服务器
    @目录一、背景二、搭建AD域服务器步骤三、生成可供java程序使用的keystore文件四、导出某用户的keytab文件五、主机配置hosts文件六、主机确认是否能ping通本人其他相关文章链接一、背景亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置......
  • PySide6环境搭建
    PySide6环境搭建1、conda创建环境#创建condacreate-npyside_envpython=3.8#查看condainfo-e#激活condaactivatepyside_env#退出condadeactivate2、安装PySide6condaactivatepyside_envpipinstallPySide6-ihttps://pypi.tuna.tsinghua.edu.......
  • RTOS_SDK-ESP8266环境搭建+独立按键
    本文针对ESP8266的RTOS_SDK开发编译流程出现的报错进行了一些解决,并且完成了按键控制LED功能环境准备硬件环境准备esp8266(焊接排针)独立按键杜邦线软件环境准备参考这位大佬:环境搭建教程ESP8266_RTOS_SDKAiThinkerIDE_V1.5.2注意事项出现mintty.exe报错......
  • GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
    代码托管平台GitLab国际站(GitLab.com)近日发布公告,官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务,并提供60天过渡期自行迁移账户数据,超期未迁移的账号可能会被GitLab清除。这一重要决策引起了全球开发者的广泛关注和讨论。为了承接本次调整受影响地区的用户,GitL......
  • GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
    代码托管平台GitLab国际站(GitLab.com)近日发布公告,官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务,并提供60天过渡期自行迁移账户数据,超期未迁移的账号可能会被GitLab清除。这一重要决策引起了全球开发者的广泛关注和讨论。为了承接本次调整受影响地区的用户,GitL......
  • 使用Nexus搭建Docker仓库
    一、背景Nexus之前已支持了nuget,由于docker仓库和前面几个存在比较大的差异,所以我特此记录下走过的坑。希望能对后来者有所帮助~~(当然,docker私有仓库,大多数是推荐使用harbor,因为我这里的某些历史原因,就沿用nexus)二、建立仓库依次建立代理仓库、私有仓库、组合仓库。需要注意......
  • moredoc魔豆文库系统搭建ubuntu
    系统:ubuntu:20.04软件:moredoc-ce:3.2.0根据官方手册进行安装https://www.bookstack.cn/read/moredoc/install-linux.mdMySQL安装及问题处理ubuntu更新系统aptupdateaptupgrade-y安装MySQLaptinstall-ymysql-serveraptinstall-ylibmysqlclient-dev启动MySQ......
  • 【向量数据库】搭建RAG架构,如何选择向量数据库产品?
    搭建RAG架构应用时,选择合适的向量数据库是关键。向量数据库是RAG系统的核心组件,负责存储和检索高维向量数据,从而支持高效的语义搜索和信息检索功能。那么今天与大家分享下如何选择向量数据库,以及主流向量数据库产品的推荐,供您参考学习。如何选择向量数据库?性能与延迟:向量数据库......
  • centos7 2节点搭建mha
    配置主从同步:创建用于同步的用户:createuserrepl@'%'identifiedby'Admin@123';grantREPLICATIONCLIENT,REPLICATIONSLAVEon*.*torep@'%';创建用户mha连接的用户:CREATEUSER'mha'@'%'IDENTIFIEDWITHmysql_native_passwordB......