发布npm包到GitLab教程

server/2024/11/15 6:17:49/

之前在研究如何搭建UI组件库(内部使用),其中重要的一步就是发布npm包到GitLab。中间踩了很多坑,在这里记录一下整个流程方便大家快速上手。不足之处欢迎指出🙏

1. 获取Token

gitlab中打开access tokens申请页面,新增一个至少拥有read_registry,write_registry权限的Token,建议全部勾选,申请后保存下来。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.新建项目

新建一个文件夹npm-demo,目录结构如下:
在这里插入图片描述
执行命令npm init创建一个package.json文件,按照提示填写相关内容(一般默认即可,后面还可以改)。

// package.json
{"name": "@scope/npm-demo", // scope 换成自己的项目组"version": "1.0.1",   // 版本号,每次发布要修改,不能重复"description": "publish the npm package to gitlab","main": "index.js",   // 入口文件"type": "module",  // 使用 ES 模块规范(index.js中用到了export)"scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": ["npm","gitlab"],"author": "joshuali","license": "ISC"
}

新建一个js文件,写一个sum函数

// index.js
export function sum(a, b) {return a + b;
}

新建一个npm配置文件.npmrc,内容如下

# .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替换为要发布包的项目组名。
your_domain_name替换为你们公司gitlab的域名。注意前面是https还是http
your_project_id替换为项目 ID,可在项目概述页面上找到。
"${NPM_TOKEN}"与您稍后在流程中创建的令牌相关联。

3.推送包

  • 在git bash窗口:
    NPM_TOKEN=your_token npm publish
  • 在powershell窗口:
    $env:NPM_TOKEN=“your_token”
    npm publish

在这里插入图片描述
打开gitlab可以看到刚刚推送成功的包。
在这里插入图片描述

4.下载包

npmrc_62">当前目录没有.npmrc文件:

npm config set – //your_domain_name/:_authToken=your_token
npm config set – //your_domain_name/api/v4/projects/your_project_id/packages/npm/:_authToken=your_token
npm install @scope/包名称

npmrc_68">当前目录有.npmrc文件:

  • 在git bash窗口:
    NPM_TOKEN=your_token npm install @scope/包名称
  • 在powershell窗口:
    $env:NPM_TOKEN=“your_token”
    npm install @scope/包名称

5.使用

在这里插入图片描述

参考资料:包注册表中的 npm 包 |GitLab的


http://www.ppmy.cn/server/111933.html

相关文章

09.定时器02

#include "reg52.h"sbit led P3^6;void delay10ms() { //1. 配置定时器0工作模式位16位计时TMOD 0x01;//2. 给初值,定一个10ms出来TL00x00;TH00xDC;//3. 开始计时TR0 1;TF0 0; } void main() {int cnt 0;led 1;while(1){if(TF0 1)//当爆表的时候&a…

【高等代数笔记】(18)N阶行列式

2. N阶行列式 2.12 行列式按k行&#xff08;列&#xff09;展开 【拉普拉斯定理】 n n n阶矩阵 A ( a i j ) \boldsymbol{A}(a_{ij}) A(aij​)&#xff0c;取定第 i 1 , i 2 , . . . , i k i_{1},i_{2},...,i_{k} i1​,i2​,...,ik​行&#xff08;其中 i 1 < i 2 < .…

Redis数据结构与连接

1 基本的数据结构 1.1 string string的实现有多种 int&#xff1a;字符串长度小于等于20且能转成整数raw&#xff1a;字符串长度大于44embstr&#xff1a;字符串长度小于等于44 字符串长度小于1M 时&#xff0c;加倍扩容&#xff1b;超过 1M 每次只多扩1M&#xff1b;字符串…

gitignore does not work

在.gitignore文件中新增想要ignore的文件路径&#xff0c;但是不生效。 这是由于git cache导致的&#xff0c;处理方法见下方链接&#xff1a; caching - Ignore files that have already been committed to a Git repository - Stack Overflow

Linux 进程概念 进程状态 fock函数讲解

PID和PPID 我如果想获取自己的PID呢&#xff1f; pid_t getpid(void);头文件:#include<sys/types.h> #include<unistd.h> 返回调用这个函数的进程ID(自己的PID) PID一般会变化 如何获取PPID? pid_t getppid(void);(父ID)头文件:#include<sys/types.h>…

微服务CI/CD实践(二)服务器先决软件安装

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;服务器先决软件安装 微服务CI/CD实践&#xff08;三&#xff09;gitlab部署 微服务CI/CD实践&#xff08;四&#xff09;nexus3部…

upload文件上传靶场

第一关 修改网页源代码为php文件&#xff0c;上传一个php文件查看 第二关 上传一个php文件查看&#xff0c;发现不能上传 将php文件改为jpg格式上传抓包查看,将jpg改为php放行 第三关 上传一个php文件查看 将php改为php3格式上传查看 第四关 创建一个.htaccess文件先上传在…

FIFO求和实验

前言 FIFO&#xff08;先进先出&#xff09;队列在图像处理中的应用非常广泛&#xff0c;特别是在需要处理实时数据流和保证数据顺序的场景中。以下是一些具体应用实例&#xff1a;在实时视频流处理中&#xff0c;FIFO队列用于缓存图像帧。这样可以确保图像数据按照捕获顺序被处…