【每天一个早下班技巧】NPM发包流程

发包流程

step1:设置包发布地址

参考资料

// 1.在package.json中设置发布地址
"publishConfig":{
  "registry":"http://registry.npm.xxx.com"
}

//2.设置别名
alias ynpm="npm --registry=http://registry.npm.xxx.com"
ynpm publish

//3.添加包Maintainers
npm owner add <user> [<@scope>/]<pkg>

//4.发布哪些文件
// 在package.json里的files字段配置,files 字段值是一个数组,可以写具体文件名,也可以写目录,还支持 glob 模式。
//使用.npmignore配置文件,类似于 .gitignore 文件,其实如果没有 .npmignore,会使用.gitignore来取代他的功能。在包的根目录下,.npmignore不会覆盖 files 字段,但在子目录中会覆盖。
// ⚠️以下文件无法通过配置排除或者包含:
/*package.json
README
CHANGES / CHANGELOG / HISTORY
LICENSE / LICENCE
NOTICE
main字段中的文件
*/
//⚠️以下文件无法发布到 npm
/*.git
CVS
.svn
.DS_Store
._*
等等
*/

step2: 在项目根目录生成待发布的包版本

#******方案一******
#升级主版本(进行不兼容的 API 更改时)
npm version major

#升级次版本(以向后兼容的方式添加功能时);
npm version minor

#升级补丁版本(表示修订号,当进行向后兼容的缺陷修复时);
npm version patch

#---升级预发布版本---
npm version premajor
npm version preminor
npm version prepatch
npm version prerelease --preid=alpha/beta

#------生成待发布版本号------
npm version
#version = v1.0.0
npm version major
#version = v2.0.0
npm version
#version = v1.0.0
npm version minor
#version = v1.1.0
npm version
#version = v1.0.0
npm version patch
#version = v1.0.1
npm version
#version = v1.0.0
npm version prepatch
#version = v1.0.2-0
npm version
#version = v1.0.0
npm version prerelease --preid=alpha/beta
#version = v1.0.0-alpha/beta.0

#******方案二******
#打开package.json文件,修改version字段,例如从1.0.0修改为1.0.0-beta
{
  "name": "your-package",
  "version": "1.0.0-beta",
  ...
}

step3: 新版本发布

# 提交正式版本
npm publish

# 提交测试版本: 需要先生成测试版本号
npm publish --tag beta

扩展

版本管理

版本号包括三个部分:MAJOR、MINOR、PATCH
MAJOR 表示主版本号,当进行不兼容的 API 更改时,则升级主版本;

MINOR 表示次版本号,当以向后兼容的方式添加功能时,则升级次版本;

PATCH 表示修订号,当进行向后兼容的缺陷修复时,则升级补丁版本;

alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和
测试人员测试和找BUG用的。

beta版:公开测试版。β是希腊字母的第二个,顾名思义,这个版本比alpha版发布得晚一些,主要是给“部落”用户和忠实用户测试用的,该版本任然存
在很多BUG,但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能。如果你是发烧友,可以下载这个版本。

rc版:全写:Release

Candidate(候选版本),该版本又较beta版更进一步了,该版本功能不再增加,和最终发布版功能一样。这个版本有点像最终发行版之前的一个类似
预览版,这个的发布就标明离最终发行版不远了。作为普通用户,如果你很急着用这个软件的话,也可以下载这个版本。

stable版:稳定版。在开源软件中,都有stable版,这个就是开源软件的最终发行版,用户可以放心大胆的用了。

npm versionDescription
major- 如果没有预发布号,则直接升级一位大号,其他位都置为0- 如果有预发布号: – 中号和小号都为0,则不升级大号,而将预发布号删掉。即2.0.0-1变成2.0.0,这就是预发布的作用 – 如果中号和小号有任意一个不是0,那边会升级一位大号,其他位都置为0,清空预发布号。即 2.0.1-0变成3.0.0
minor- 如果没有预发布号,则升级一位中号,大号不动,小号置为空- 如果有预发布号: – 如果小号为0,则不升级中号,将预发布号去掉 – 如果小号不为0,同理没有预发布号
patch- 如果没有预发布号:直接升级小号,去掉预发布号- 如果有预发布号:去掉预发布号,其他不动
premajor- 直接升级大号,中号和小号置为0,增加预发布号为0
preminor- 直接升级中号,小号置为0,增加预发布号为0
prepatch- 直接升级小号,增加预发布号为0
prerelease- 如果没有预发布号:增加小号,增加预发布号为0- 如果有预发布号,则升级预发布号

Changelog

# 通过dist-tag添加不同的标签,发布不同标签的版本
npm dist-tag add <pkg>@<version> [<tag>]
npm publish [--tag <tag>]

查看包版本信息

# 查看安装的包版本
npm view 包名 version

# 查看包的所有版本
npm view 包名 versions

下载包

# 查看包的所有版本
npm view 包名 versions

# 下载包正式版本
npm install @packageName

# 下载包测试版本
npm install @packageName@beta

# 查看安装的包版本
npm view 包名 version

# 写入到 dependencies 对象 
npm install module_name --save  => npm i module_name -S 
# 写入到 devDependencies 对象
npm install module_name --save-dev => npm i module_name -D 
# 全局安装
npm install module_name => npm i module_name -g 

查看全局安装的包

npm list -g --depth=0
yarn global list --depth=0

本地开发调试

参考资料

// 包所在项目根目录下
npm link

//这样在本地的 global 下就会存在一个这样的 npm 包。
//由于这是通过软链接的方式实现的,当我们编辑了本地的该包模块中的代码,可以直接在安装它的工程中马上看到更新后的效果。

// 项目中安装本地 npmnpm link 包所在项目根目录地址

// 上面这一步就是让当前工程去模拟 npm install 命令,包来源于本地 npm link 过的文件。
// 执行后,业务工程的 node_modules 中就会有这个包(标识是包旁边出现一个小箭头)

// 本地调试 npm 代码:更改包中的代码后,运行以下命令,更改内容会在安装该包的项目中生效
npm/yarn run build

// 当本地 npm 包调试完成后,在其根目录执行如下命令,即可解除 link
npm unlink babel-plugin-function-try-catch

Package.json 文件

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手把手教你配置Jenkins自动化邮件通知

完成基于Jenkins的持续集成部署后&#xff0c;自动化测试执行后&#xff0c;测试结果需要通知到相关人员&#xff0c;除了钉钉通知外我们还可以通过Email通知到对应负责人&#xff0c;这里记录一下测试结果通过Jenkins邮件通知的配置与部署 01、安装插件 方法1&#xff1a; 进…

【neo4j】neo4j的安装与使用

【neo4j】neo4j的安装与使用 安装java https://www.oracle.com/java/technologies/downloads/ 按照步骤安装即可 配置环境变量 在系统变量中添加 path变量中添加 安装neo4j https://neo4j.com/deployment-center/ 下载后&#xff0c;在指定位置解压缩 与java相同&#…

马斯克谈六西格玛:管理质量与火箭科学如何相辅相成

如果你问我&#xff0c;作为一个有志于送人类上火星的家伙&#xff0c;六西格玛管理有没有用&#xff1f;我会说&#xff0c;如果把火箭控制的精度与六西格玛得到的生产质量相比&#xff0c;你会发现两者都追求同一件事&#xff1a;接近零缺陷的完美。 六西格玛不只是一组工具…

如何在 NAS 上安装 ONLYOFFICE 文档?

文章作者&#xff1a;ajun 导览 ONLYOFFICE 文档 是一款开源办公套件&#xff0c;其是包含文本文档、电子表格、演示文稿、表单、PDF 查看器和转换工具的协作性编辑工具。它高度兼容微软 Office 格式&#xff0c;包括 .docx、.xlsx 、.pptx 、pdf等文件格式&#xff0c;并支持…

wireshark access/trunk/hybrid报文分析

1&#xff0c;access接口 发送带vlan的报文 wireshark交换机配置 [Huawei-GigabitEthernet0/0/1] [Huawei-GigabitEthernet0/0/1]port link-type access [Huawei-GigabitEthernet0/0/1]port default vlan 100 [Huawei-GigabitEthernet0/0/2]port link-type access [Huawei-Gig…

华为---USG6000V防火墙web基本配置示例

目录 1. 实验要求 2. 配置思路 3. 网络拓扑图 4. USG6000V防火墙端口和各终端相关配置 5. 在USG6000V防火墙web管理界面创建区域和添加相应端口 6. 给USG6000V防火墙端口配置IP地址 7. 配置通行策略 8. 测试验证 8.1 逐个删除策略&#xff0c;再看各区域终端通信情况 …

SpringMVC之视图和RESTful

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Java注解之@Autowired,一文掌握@Autowired注解知识(3)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

k8s搭建(四、k8s集群创建)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

05-C++ 类和对象-继承

类与对象-03 继承与派生 1. 继承的概念 c最重要的特征是代码重用&#xff0c;通过继承机制可以利用已有的数据类型&#xff0c;来定义新的数据类型&#xff0c;新的类不仅拥有旧类的成员&#xff0c;还拥有新定义的成员。 一个 B 类继承于 A 类&#xff0c;或称从类 A 派生…

QCheckBoxQRadioBoxQComboBoxQSlider

QCheckBox QCheckBox 是 Qt 框架中一个常用的控件&#xff0c;用于创建一个可以勾选或取消勾选的复选框。它通常用于表示选项的开/关状态 autoExclusive 是一个与单选按钮&#xff08;QRadioButton&#xff09;相关的属性。这个属性决定了同一个父窗口下的单选按钮是否自动形成…

【C++干货铺】STL中set和map的介绍和使用

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 序列式容器 关联式容器 键值对 树形结构的关联式容器 set set的介绍 set的使用 set的模板参数列表 set的构造 ​编辑 set的容量 set的删除和查找 mult…

125 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &#xff1b;否则&#…

软件测试/测试开发丨Python常用数据结构-列表list

列表的定义 列表是有序的可变元素的集合&#xff0c;使用中括号[ ]包围&#xff0c;元素之间用逗号分隔&#xff1b;列表是动态的&#xff0c;可以随时扩展和收缩&#xff1b;列表是异构的&#xff0c;可以同时存放不同类型的对象&#xff1b;列表允许出现重复的元素。 列表的…

电子企业实施MES管理系统需要多少预算

在当今高度自动化的工业环境中&#xff0c;MES管理系统已成为提升生产效率、优化资源配置、确保产品质量的关键工具。对于电子企业而言&#xff0c;实施MES管理系统不仅可以提升生产过程的透明度&#xff0c;还能有效降低成本&#xff0c;增强市场竞争力。然而&#xff0c;企业…

SV接口的驱动和采样_2023.12.27】

cb 使用cloking block进行信号的同步 在cloking block&#xff0c;所有信号的采样和驱动&#xff0c;都是和时钟同步的 clocking cb &#xff08;posedge clk&#xff09;; input grant; output request; endclocking接口同步 用和wait来同步测试平台中的信号 bus.cb; 接口…

uboot安装操作系统

FT1500A 刀片机uboot安装系统 外接sata盘的方式&#xff1a; 准备一个带系统的sata盘&#xff08;系统必须支持这个硬件不然启不来&#xff0c;uboot不需要改什么默认进这个系统&#xff09;&#xff0c;把iso与脚本harddisk_copy-noarch_20160711.sh拷进去 通过mobaxterm或…

《Python》:深拷贝、浅拷贝、赋值之间的关系(附可变与不可变)【用图文讲清楚!】

背景 想必大家面试或者平时学习经常遇到问python的深拷贝、浅拷贝和赋值之间的区别了吧&#xff1f;看网上的文章很多写的比较抽象&#xff0c;小白接收的难度有点大&#xff0c;于是乎也想自己整个文章出来供参考 可变与不可变 讲深拷贝和浅拷贝之前想讲讲什么是可变数据类型…

Kubernetes 学习总结(43)—— Kubernetes 从提交 deployment 到 pod 运行的全过程

当用户向 Kubernetes 提交了一个创建 deployment 的请求后&#xff0c;Kubernetes 从接收请求直至创建对应的 pod 运行这整个过程中都发生了什么呢&#xff1f; kubernetes 架构简述 在搞清楚从 deployment 提交到 pod 运行整个过程之前&#xff0c;我们有先来看看 Kubernete…

【unity学习笔记】配置模型,实现眨眼和口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型&#xff08;.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。&#xff08;VRM-0.116.0_0f6c&#xff09; 3.将univrm导入到工程中&#xff08;assets&#xff09;。 三…
最新文章