VS Code 扩展如何发布到私有Nexus的正确姿势

VS Code扩展的发布

在这里插入图片描述

VS Code 扩展的发布需要使用到vscevsce是一个用于打包、发布和管理 VS Code 扩展的命令行工具。可以通过 npm 来全局安装它:

npm install -g vsce

发布扩展到微软的应用市场

VS Code 的应用市场基于微软自己的 Azure DevOps。要发布扩展,需要先注册一个 Microsoft 账号,并创建一个 Azure DevOps 组织。然后,在 Azure DevOps 中创建一个 Personal Access Token(PAT),这个 Token 在发布扩展时会用到。

使用vsce工具创建一个发布者账号。这个账号将用于在 VS Code 应用市场中标识你的扩展。运行以下命令来创建发布者账号:

vsce create-publisher 

在创建了发布者账号并登录后,可以使用以下命令来发布扩展:

vsce publish <version>

其中<version>是扩展的版本号。

发布完成后,可以在 VS Code 的扩展市场中搜索到扩展名称。

Nexus 的介绍

Nexus是一个强大的仓库管理器,全称为Nexus Repository Manager,由Sonatype公司开发。其支持多种类型的仓库,包括Maven、npm、Docker等。
使用Nexus 可以搭建私有仓库。

虽然没有直接提供对VS Code扩展的支持,但使用 npm 可以达成发布VS Code扩展到Nexus库的目的。

发布自行开发的VS Code插件到Nexus 的极简步骤

在这里插入图片描述

步骤1. 在Nexus 创建一个 npm(host) 的库,用于存放VS Code 扩展

登录Nexus管理后台,进入服务的管理和配置:

在这里插入图片描述

点击创建库, 选择库的类型是npm(hosted)
在这里插入图片描述

在这里插入图片描述

这里创建的库的名字是 my-vs-ext,完整的地址如下:

http://myhost:8081/repository/my-vs-ext/

复制这个地址。

步骤2 在VS Code扩展项目修改如下配置:

修改:

	"repository": {"type": "nexus","url": "http://myhost:8081/repository/my-vs-ext/"},

新增:

	"publishConfig": {"registry": "http://myhost:8081/repository/my-vs-ext/"},

修改:

	"scripts": {"prepublishOnly": "vsce package -o myextension.vsix --baseContentUrl http://myhost:8081/repository/my-vs-ext/","vscode:prepublish": "webpack --mode production","webpack": "webpack --mode development","webpack-dev": "webpack --mode development --watch","test-compile": "tsc -p ./","lint": "eslint \"src/**/*.ts\""},
  • 这里主要是增加prepublishOnly 的配置

步骤3. 配置Nexus认证信息

通过.npmrc可以配置 Nexus私有库的认证信息。

  • {插件项目路径}.npmrc
  • C:\Users\xxx.npmrc

配置的格式是:

registry=https://your-nexus-server/repository/your-repo/
//your-nexus-server/repository/your-repo/:_auth=BASE64_ENCODED_CREDENTIALS
//your-nexus-server/repository/your-repo/:username=username
//your-nexus-server/repository/your-repo/:_password=BASE64_ENCODED_PASSWORD
//your-nexus-server/repository/your-repo/:email=your-email@example.com
//your-nexus-server/repository/your-repo/:always-auth=true

这里的_auth 和 _password 是Base 64 的编码
*_auth 对应的是:username:password 的编码

  • _password 就是 password 的编码
获取Base64编码

Linux 系统可以直接使用如下命令获取:

echo -n 'username:password' | base64

如果是Windows 系统, CMD 不支持上面的方式,会提示Base64不是内部或外部命名, 如果安装了Git, 可以使用Git Bash 执行获取。
执行效果如下:

在这里插入图片描述

确认认证是成功的

在命令行输入如下命令:

npm whoami --registry https://your-nexus-server/repository/your-repo/ 

认证成功会返回用户名,接下来就可以执行发布命令了。

发布

在命令行输入如下命令:

npm publish --registry https://your-nexus-server/repository/your-repo/ 

等命令行执行完成, 控制台没有出现错误的话,可以到 Nexus 中去查询发布的VS Code扩展。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis的部署及基本使用

一、redis部署 1、关闭防火墙 关闭防火墙&#xff1a; systemctl stop firewalld.service 状态&#xff1a; firewall-cmd --state 卸载防火墙 yum remove firewalld 2、CentOS7部署redis 1、检查编译运行环境&#xff0c;是否有 GCC 编译器 检查环境&#xff08;gcc&…

防御---001

一、实验拓扑二、要求 1&#xff0c;DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00 - 18:00)可以访问&#xff0c;生产区的的设备全天可以访问. 2&#xff0c;生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3,办公区设备10.0.2.10不允许访问DMZ…

Linux的tmp目录占用空间100%问题分析和解决

一、背景 系统运行期间&#xff0c;客户突然反馈上传文档传不上去。研发立马排查日志&#xff0c;发现日志中出现大量的“No space avaliable on disk”&#xff0c;下意识应用服务器磁盘满了&#xff0c;赶快连上服务器查看磁盘空间占用情况&#xff1a; 黑人问号脸&#xff…

前端程序员常用快捷键

一些常用的快捷键 我们在开发时为了提高代码编写效率&#xff0c;通常会使用一些快捷键。我们开发工具自带的快捷比较多&#xff0c;我这里不一一列举了&#xff0c;我把一些常用的快捷键拿出来给大家大致讲一讲&#xff0c;我这里以window电脑为例&#xff0c;如果你mac电脑&a…

利用Hbuilder创建vue3的web项目

大体流程如下 npm install vue-router4 下载完&#xff0c;就创建完了

【概率统计】如何通俗易懂的理解P值

通俗易懂的P值解析&#xff1a;用简单例子理解统计概念 什么是P值&#xff1f; P值是统计学中的一个概念&#xff0c;用来评估实验结果的罕见程度。它并不能直接告诉实验是否成功或假设是否正确&#xff0c;而是帮助判断在假设成立的情况下&#xff0c;观察到的结果有多罕见。…

模版初阶(更新)

文章目录 模版介绍函数模版模版匹配规则类模版结言 模版介绍 函数模版分为两个类型&#xff1a; 函数模版类模版 函数模版 语法格式&#xff1a; t e m p l a t e < t y p n a m e T 1 , t y p n a m e T 2... > template<typname T1,typname T2...> template&…

用这款免费爬虫神器,不用手动撸代码了!

很多人学习Python和我说是为了“爬虫”&#xff0c;爬虫的用处确实很丰富&#xff0c;如&#xff1a; 市场研究&#xff0c;了解竞争对手信息&#xff0c;爬虫收集舆论信息、产品动态。 价格分析&#xff0c;通过抓取不同平台商品价格&#xff0c;监测价格波动&#xff0c;…

刷题Day48|115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离

115.不同的子序列 115. 不同的子序列 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;dp[i][j]&#xff1a;以i-1为结尾的s子序列中出现以j-1为结尾的t的个数。dp[i][j]还是考虑两种情况&#xff1a; s[i - 1] t[j - 1]&#xff0c;dp[i][j] dp[i - 1][j - 1] …

MySQL:left join 后用 on 还是 where?

在MySQL中&#xff0c;LEFT JOIN用于返回左表&#xff08;即LEFT JOIN关键字左边的表&#xff09;的所有记录&#xff0c;即使在右表中没有匹配的记录。对于那些右表中没有匹配的记录&#xff0c;结果集中右表的部分会被填充为NULL。关于ON和WHERE子句的使用&#xff0c;它们在…

通过gateway 打印日志全局控制日志

需求&#xff1a; 业务上经常需要打印日志&#xff0c;传统代码加日志&#xff0c;对代码侵入太强&#xff0c;不管是添加删除修改日志 都会改动代码&#xff0c;即使使用注解也需要添加注解&#xff0c;想实现且偶零侵入添加代码。 解决方法 gateway 自定义filter。 前置条…

【Go系列】 Go语言的入门

为什么要学习Go 从今天起&#xff0c;我们将一同启程探索 Go 语言的奥秘。我会用简单明了的方式&#xff0c;逐一讲解 Go 语言的各个知识点&#xff0c;帮助你从基础做起&#xff0c;一步步深化理解。不论你之前是否有过 Go 语言的接触经验&#xff0c;这个系列文章都将助你收获…

题解[自己出的题]

题解 题目&#xff1a; 舞伴配对 思路&#xff1a; 首先我们初始化两个队列 男生队列为q1,女生为q2 然后我们入队 因为我们现在每一个队伍都是有编号的 那我们先处理q1(男生队)&#xff1a; M M M个人 我们要为每一个人进行入队 在第一个循环的第二行(见<)让队首入队&a…

比curl更直观的网站性能测试工具httpstat——筑梦之路

GitHub - davecheney/httpstat: Its like curl -v, with colours. wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.pymv httpstat.py /usr/bin/httpstat #移动到环境变量路径chmod x /usr/bin/httpstat #添加可执行权限 exec bash #重置当前bash进…

请编写函数,删除字符串中指定位置下的字符,删除成功函数返回被删字符,否则返回空值

char arr_del(char* p, int pos) {if (pos> strlen(p) || pos<0){printf("这是一个无效下标\n");exit(1);}//到这里就是有效下标char ch p[pos];//把要删除的下标存储for (int i pos; p[i] ! \0; i){p[i] p[i 1];}return ch; } int main() {char arr[100];…

MySQL9.0的新特性

MySQL 9.0 版本出来了&#xff0c;我也学学它的一些新特性。 高级 JSON 数据处理&#xff1a;MySQL 9.0 增强了对 JSON 数据的处理能力&#xff0c;允许用户将 EXPLAIN ANALYZE 命令的 JSON 输出直接保存到用户变量中&#xff0c;这使得查询调试和优化更加容易。例如&#xff0…

使用conda安装openturns

目录 1. 有效方法2. 整体分析使用pip安装使用conda安装验证安装安装过程中可能遇到的问题 1. 有效方法 conda install -c conda-forge openturns2. 整体分析 OpenTURNS是一个用于概率和统计分析的软件库&#xff0c;主要用于不确定性量化。你可以通过以下步骤在Python环境中安…

芋道源码 yudao-cloud 文档,视频,开发指南如何看全部

进入官网后可以看到相关内容 但是后端手册开始就看不了了 必须加入知识知识星球才行&#xff0c;很烦 闲**鱼搜索用户 水城打坐的藤壶 找到这个链接 这下大家都懂了吧 现在就可以看到看不到的内容了 在线文档的弹窗可技术去除&#xff0c;很简单 直接起飞哈 包括更新sq…

数据结构与算法基础篇--二分查找

必要前提&#xff1a;有序数组 算法简述&#xff1a;通过不断取中间值和目标target值进行比较&#xff08;中间值&#xff1a;mid (left right) / 2&#xff09; 如果目标值等于中间位置的值&#xff0c;则找到目标&#xff0c;返回中间位置如果目标值小于中间位置的值&…

YOLOv10改进 | 图像去雾 | MB-TaylorFormer改善YOLOv10高分辨率和图像去雾检测(ICCV,全网独家首发)

一、本文介绍 本文给大家带来的改进机制是图像去雾MB-TaylorFormer&#xff0c;其发布于2023年的国际计算机视觉会议&#xff08;ICCV&#xff09;上&#xff0c;可以算是一遍比较权威的图像去雾网络&#xff0c; MB-TaylorFormer是一种为图像去雾设计的多分支高效Transformer…