【工程化】之5分钟发布一个Npm包

news2025/1/9 1:04:26

NPM是一个包管理器, 为js开发人员提供可以在项目中使用的模块,业界有很多流行的开源库,如Lodash,在我们内部也免不了通过对能力的封装打包,快速复用到其他地方去,使用NPM包很简单。您只需使用NPM安装包,将其导入,然后通过调用函数来调用模块。那怎么发布自己的npm包呢?

npm的强大我们有目共睹,为了方便有演示,我们从头来吧!

一、初始化一个项目

注意这里假设你已经安装了npm、node~

mkdir npm-xxxx-start  // 新建一个文件夹
cd npm-xxxx-start // 进入文件夹
用npm初始化项目 npm init -y //

npm init的主要作用就是产生一个package.json文件,这个文件是nodejs项目的配置文件,里面主要是项目名称,版本,依赖,作者,运行命令等,如果在一个空的文件夹下我们使用:

在这里插入图片描述

二、写入npm包内容

新建一个index的文件,作为演示,我们让这个npm包的功能就是将输入的字符串转成大写,记得导出这个方法。

在这里插入图片描述

三、登陆npm账号

  1. 注册npm账号
  2. npm login
  3. 每次登陆都会提示你二次确认,可以在账号设置中进行设置’

在这里插入图片描述

四、发布npm包

注意此时记得build打包~,再提交完修改后

npm publish

我刚刚发布的包传送门

注意:并不是执行一条命令就万事大吉

4.1 标准版本

npm包 中的模块版本都需要遵循 SemVer规范——由 Github 起草的一个具有指导意义的,统一的版本号表示规则。实际上就是 Semantic Version(语义化版本)的缩写。

SemVer规范的标准版本号采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负的整数,且禁止在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须以数值来递增。

  1. 主版本号(major):当你做了不兼容的API 修改
  2. 次版本号(minor):当你做了向下兼容的功能性新增
  3. 修订号(patch):当你做了向下兼容的问题修正。

例如:1.9.1 -> 1.10.0 -> 1.11.0

4.2 npm version

npm version 可以帮助你更新package.json内的版本号
我们首次创建的版本号自然是1.0.0,而之后我们可以通过命令来控制版本的增加,尽量减少直接手动修改

  • npm version patch : 升级修订版本号
  • npm version minor : 升级次版本号
  • npm version major : 升级主版本号

五、使用npm包

npm i npm-math-start

在这里插入图片描述

到此,整个流程已经结束了!🎉🎉🎉 欢迎留言哦~

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

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

相关文章

SHELL中for循环和IF判断的使用

1。编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、.....、 test10 2.编写脚本for2.sh,使用for循环,通过ping命令测试网段的主机连通性,网段前3段由用户输…

stable- diffusion新版本V2效果有提升吗?

之前版本是最初版本,不是V2,那么这里就新版本V2进行系列试验,如下,附代码及link 1、text2img from diffusers import StableDiffusionPipeline, DPMSolverMultistepSchedulermodel_id "stabilityai/stable-diffusion-2-1&…

在android项目上集成libyuv库以及使用libyuv库完成camera的缩放,旋转,翻转,裁剪操作

目录 一、下拉google官方的libyuv库代码 二、在android项目中集成libyuv库 1.环境配置 2.拷贝libyuv源码文件 ​编辑3.配置cmake libyuv相关的链接编译等 三、使用libyuv库 1.libyuv库完成camera的旋转 2.libyuv库实现翻转 3.libyuv库实现缩放 4.libyuv库实现裁剪 一…

九龙证券|多巨头竞相布局这个热门赛道,机构一致看好的概念股

华为高阶智能驾驭体系ADS 2.0版本发布。 早前,华为在2023华为智能轿车解决方案发布会上,发布了高阶智能驾驭体系 ADS 2.0。新体系将由 AITO 问界 M5 高阶智能驾驭版首发,并已适配阿维塔 11 全系列以及极狐阿尔法 S 全新 Hi 版等车型。 最近&…

JDBC(java数据库连接)—MySQL

文章目录 1.定义2.优势3.环境准备4.使用jdbc(java程序操作数据库)5.使用jdbc的操作步骤 1.定义 jdbc是一种用于执行SQL语句的java api,它是java中的数据库连接规范,为java开发人员操作数据库提供了一个标准的api,可以…

【Linux】系统文件接口

目录 一、C文件接口 1、fopen 2、fprintf 3、snprintf 二、系统文件IO 1、open 2、write 3、read 4、C文件接口与系统文件IO的关系 一、C文件接口 1、fopen FILE *fopen(const char *path, const char *mode); fopen 函数返回值类型为 FILE 。参数列表中&#xff0c…

优加DaaS背后,看见新的营销潮

DaaS、融合开放,这是京东云优加对外传递出来的两个最清晰的声音。前者对应的是能力和边界,后者对应的是态度和打法。两者结合,恰构成了京东云优加,或者说京东在营销侧的未来想象力。 作者|皮爷 出品|产业家 “今年我们有接近60%以…

第五章 工厂模式

文章目录 一、简单工厂模式1、传统方式实现披萨订购( 可以忽略)披萨父类 Pizza子类胡椒披萨 PepperPizza子类印度披萨 GreekPizza订购披萨 OrderPizza订购披萨的 客户端 PizzaStore运行结果传统的方式的优缺点,新增子类需要修改的地方牵扯太多传统方式的究极耦合 2、…

YOLOv8 更换骨干网络之 MobileNetV3

论文地址:https://arxiv.org/abs/1905.02244 代码地址:https://github.com/xiaolai-sqlai/mobilenetv3 我们展示了基于互补搜索技术和新颖架构设计相结合的下一代 MobileNets。MobileNetV3通过结合硬件感知网络架构搜索(NAS)和 NetAdapt算法对移动设计如何协同工作,利用互…

BswM模块之Ecu State Handling

文章目录 前言一、ESH是什么?二、基于BswM管理的ECU状态切换流程1.ECU启动2.ECU关闭 总结 前言 BswM – 基础软件模式管理模块, 它的职责是基于简单规则的BSW模块仲裁来自应用层sw - c或其他模块的模式请求,并根据仲裁结果进行相应的操作。 …

QT QPainter 绘制基本图形元件简介

1.基本图形元件 QPainter 提供了很多绘制基本图形的功能,包括点、直线、椭圆、矩形、曲线等,由这些基本的图形可以构成复杂的图形。QPainter 中提供的绘制基本图元的函数如下表所示。每个函数基本上都有多种参数形式,这里只列出函数名&#x…

Elastic Common Schema 和 OpenTelemetry — 无需供应商锁定即可获得更好的可观察性和安全性的途径

作者:Elastic 可观察性和安全团队 在 KubeCon Europe 上,宣布 Elastic Common Schema (ECS) 已被 OpenTelemetry (OTel) 接受作为对该项目的贡献。 目标是将 ECS 和 OpenTelemetry 的语义约定 (SemConv) 融合到一个由 OpenTelemetry 维护的开放模式中。 …

LearnOpenGL-模型加载

1.配置Assimp库。 下载Assimp,解压后得到 assimp-master 文件。在文件中新建一个 build 文件。使用 Cmake 生成工程文件保存在 build 中,从这里下载CMake,下载最新的即可。 打开CMake,选择需要源文件目录和目标目录。修改成适配…

机器学习平台、自研DPU、资源并池,火山引擎发布多云、AI基础设施与增长法宝

1、每十家大模型企业,七家在火山引擎云上。 2、火山引擎大模型训练云平台,支持万卡训练,集群性能提升3倍 3、火山引擎新一代自研DPU,实现计算、存储、网络的全组件卸载,释放更多资源给业务负载。 4、火山引擎与字节国内…

数据库管理软件dbeaver-ce 下载安装并离线配置

文章目录 前言数据库管理软件dbeaver-ce 下载安装并离线配置1. 概述2. 下载3. 安装4. 离线配置驱动jar包5. 链接mysql 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天…

谷歌aab包手机怎么安装教程

一、概述 bundletool是一种底层工具,可供 Android Studio、Android Gradle 插件和 Google Play 用于构建 Android App Bundle 文件并将 app bundle 转换为部署到设备的各种 APK。您也可以将 bundletool作为一种命令行工具,用于自行构建 app bundle 和重新…

【笔试强训编程题】Day2.(排序子序列 100448)和(倒置字符串 69389)

文章目录 前言 一、排序子序列 100448 题目描述 代码实现 二、倒置字符串 69389 题目描述 代码实现 总结 前言 今天让我们来练习两道经典的编程题!!!! 一、排序子序列 100448 题目描述:牛牛定义排序子序列为…

平台资金提现解决方案之实现支付宝单笔转账到银行卡功能

大家好,我是小悟 使用场景 不管是做APP、电脑网站、手机网站还是小程序,为了推广基本上都离不开用户分佣的场景。 换句话说就是在其平台内为每个用户设置“电子钱包”功能,而电子钱包在平台那里只是一串数字,这就需要平台为用户…

详解 ES6中 Promise 构造函数的使用

文章目录 前言什么是 Promise?Promise 的几种状态拆分细解 PromisePromise all()方法then()方法 返回一个新的 Promise 时的状态由什么决定?总结 前言 Promise 是ES6 新增的一个异步调用解决方案,它的出现是为了解决异…

Elasticsearch的调优思路

环境:centos7、elasticsearch-5.6.4 1、性能调优 1.1、Linux参数调优 1.1.1、关闭交换分区 目的是防止内存置换降低性能,将 /etc/fstab 文件中包含 swap 的行注释掉。 #执行命令:注释相关 swap的行 sed -i /swap/s/^/#/ /etc/fstab#将 /etc/f…