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

news2024/11/26 20:21:27

发包流程

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.coloradmin.cn/o/1342669.html

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

相关文章

Typora使用PicGo+Gitee上传图片

Typora使用PicGoGitee上传图片 1.下载PicGo(国内镜像) https://mirrors.sdu.edu.cn/github-release/Molunerfinn_PicGo/ 点击PicGo-Setup-2.3.0-x64.exe &#xff08;64位安装&#xff09; 然后打开gitee&#xff08;没注册先注册&#xff09; 2.下载node.js插件 https:/…

电脑系统坏了用U盘重装系统教程

我们平时办公、学习都会用到电脑&#xff0c;如果电脑系统坏了&#xff0c;就会影响自己正常使用电脑&#xff0c;这时候就可以通过U盘来重装一个正常的操作系统。如果您不知道具体的重装操作步骤&#xff0c;那么可以参考下面小编分享的利用U盘快速完成操作系统重装的步骤介绍…

4.14 构建onnx结构模型-Min

前言 构建onnx方式通常有两种&#xff1a; 1、通过代码转换成onnx结构&#xff0c;比如pytorch —> onnx 2、通过onnx 自定义结点&#xff0c;图&#xff0c;生成onnx结构 本文主要是简单学习和使用两种不同onnx结构&#xff0c; 下面以 Min 结点进行分析 方式 方法一&…

【网络安全 | XCTF】2017_Dating_in_Singapore

正文 题目描述&#xff1a; 01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0102030108152229151617-04050604111825181920-0108152229303124171003-261912052028211407-0405…

华为无线AC内三层漫游配置详解

重要说明 1、在一台ac中实现三层漫游 2、ac和核心的互联vlan和ap的管理vlan是同一个广播域&#xff0c;可以不用配option 43 3、直接转发模式&#xff0c;ac上可以不起业务vlan&#xff0c;ac和核心交换机上可以只放行一个互联vlan 10 4、ac上要启两个vap魔板&#xff0c;两个…

Git 浅入浅出

前提 最近和同事分模块联合开发代码&#xff0c;自然而然就要用到 Git 管理代码&#xff1b;借此机会&#xff0c;对 Git 进行简单介绍。 Git 的特征 文件系统 我们都知道 Git 是个版本控制系统&#xff0c;但是如果你深入了解其原理&#xff0c;就不难发现它更像一个文件管…

区间DP详解,思路分析,OJ详解

文章目录 前言问题引入暴力枚举自下而上状态设计状态转移方程 区间DP的分析状态设计状态转移时间复杂度翻译成递推 OJ详解P1880 [NOI1995] 石子合并记忆化搜索版本递推版本 HDU Dire WolfMultiplication PuzzlePolygon 总结 前言 区间dp属于动态规划中一类比较好理解的问题&…

概率论相关题型

文章目录 概率论的基本概念放杯子问题条件概率与重要公式的结合独立的运用 随机变量以及分布离散随机变量的分布函数特点连续随机变量的分布函数在某一点的值为0正态分布标准化随机变量函数的分布 多维随机变量以及分布条件概率max 与 min 函数的相关计算二维随机变量二维随机变…

超级详细的YOLOV8教程

超级详细的YOLOV8教程 YOLOV8介绍1. 数据标记1.1 第一种为在网站上下载&#xff0c;1.2 第二种为在CVAT上自定义数据 2. 制作数据集3. 部署YOLOV8的代码3.1 远程部署3.1.1 项目下载3.1.2 修改代码3.1.2.1 训练模型3.1.2.1 验证模型 3.2 本地部署3.2.1 YOLOV8项目部署3.2.2 cuda…

2023总结与展望--Empirefree

今年一篇博客都没写过了&#xff0c;好像完全在忙在工作和生活上面了&#xff0c;珍惜自我&#xff0c;保持热情&#xff0c;2024对我好点 文章目录 &#x1f525;1. 年终总结1.1.学习工作计划1.2. 生活计划1.3 个人总结 &#x1f525;2. 未来展望 &#x1f525;1. 年终总结 1…

基于Java学生成绩管理系统设计与实现(源码+部署文档+报告)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

两阶段提交协议

数据的强一致性 要么都修改 要么就都不修改。 不同的实体和过程 领导者和参与者、表决阶段和提交阶段 过程 一个不同意 提交就终止 存在的问题和解决的方案 如果一个领导者或者参与者的状态机中有阻塞状态&#xff0c;那么系统必须等他完成才能执行&#xff0c;这样就会…

【并发编程篇】线程安全问题_—_ConcurrentHashMap

文章目录 &#x1f354;情景引入&#x1f339;报错了&#xff0c;解决方案 &#x1f354;情景引入 我们运行下面的代码 package org.example.unsafe;import java.util.HashMap; import java.util.Map; import java.util.UUID;public class MapTest {public static void main(…

SpringBoot单点登录认证系统MaxKey(附开源项目地址)

1 项目介绍 MaxKey 单点登录认证系统&#xff0c;谐音马克思的钥匙寓意是最大钥匙&#xff0c;支持 OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM 等标准协议&#xff0c;提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC 权限管理…

如何把握品牌新五感,打造小红书品牌

随着社会经济的发展&#xff0c;市场的进步&#xff0c;以及人们思维方式的改变。年轻人面对市场&#xff0c;面对营销&#xff0c;关注点也在发生着改变。那什么是小红书品牌新五感&#xff0c;如何把握品牌新五感&#xff0c;打造小红书品牌&#xff01; 一、品牌五感是什么 …

查找dll的开放函数以及dll的依赖dll

1.进入一个vs的cmd窗口 2.dumpbin /exports XXX.dll&#xff0c;分析 XXX.dll 中有哪些函数。 例如查询: C:\Users\levi0\Desktop\testPro\NewCSDll\NewCSDll\bin\x64\Debug\GBRAnalyze.dll 3. dumpbin /dependents 文件名&#xff08;带路径&#xff09;命令&#xff0c;回车&…

servlet+jdbc实现用户注册功能

一、需求 在Servlet中可以使用JDBC技术访问数据库&#xff0c;常见功能如下&#xff1a; 查询DB数据&#xff0c;然后生成显示页面&#xff0c;例如&#xff1a;列表显示功能。接收请求参数&#xff0c;然后对DB操作&#xff0c;例如&#xff1a;注册、登录、修改密码等功能。…

Linux中磁盘管理与文件系统

目录 一.磁盘基础&#xff1a; 1.磁盘的结构&#xff1a; 2.硬盘的数据结构&#xff1a; 3.硬盘存储容量 &#xff1a; 4.硬盘接口类型&#xff1a; 二.MBR与磁盘分区&#xff1a; 1.MBR的概念&#xff1a; 2.硬盘的分区&#xff1a; 为什么分区&#xff1a; 2.表示&am…

【PHP】B/S手术室麻醉信息管理系统源码

手术麻醉临床信息系统全面覆盖从患者入院&#xff0c;经过术前、术中、术后&#xff0c;直至出院的全过程。通过与相关医疗仪器的设备集成&#xff0c;不但可以轻松集成手术室传统监护设备如监护仪、麻醉机、呼吸机&#xff0c;也能与血气分析仪等设备对接&#xff0c;快速获取…

java并发编程十三 线程池

文章目录 线程池自定义线程池ThreadPoolExecutor提交任务关闭线程池任务调度线程池正确处理执行任务异常 线程池 自定义线程池 步骤1&#xff1a;自定义拒绝策略接口 FunctionalInterface // 拒绝策略 public interface RejectPolicy<T> {void reject(BlockingQueue&l…