如何发布一个npm包

news2025/1/11 23:52:56

1、注册账号

https://www.npmjs.com/
使用邮箱注册即可
a. 邮箱会在本地登录时发送验证码使用
b. 发布包后邮箱会收到通知

2、生成AccessToken

(1)直接本地登录

# 根据提示输入用户名、密码、注册邮箱
npm login

# 输入完邮箱会发送验证码,输入验证码后完成登录
# 此时会自动注册 AccessToken 并配置到本地

(2)通过npmjs.com生成

a)npm官网登录后,头像下拉选择 Access Tokens
在这里插入图片描述
在这里插入图片描述

b)右上角选择生成新的token,根据需要选择 token 类型(以 Classic Token 为例)

  1. Granular Access Token (会创建一个包含失效日期等属性的 token)
  2. Classic Token (会创建一个不会失效的 token)

c)选择 publish
在这里插入图片描述

d)复制生成的 token 设置到本地

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZpbXeCqd-1685693427457)(https://lexiangla.com/assets/d5c31b02b7cf11edb652ae782162afb9)]

vim ~/.npmrc

# 添加以下内容(前面两个斜线不要删了)
//registry.npmjs.org/:_authToken=<复制的token>

(3)验证AccessToken

npm whoami

# 如果能正确输入用户名,则配置正确

3、组件开发

(1)部分所需文件

  1. LICENSE --> 许可证(重要),直接创建,或者通过 Github 创建
    在这里插入图片描述

在这里插入图片描述

  1. package.json --> 配置
  2. CHANGELOG.md --> 更新日志
  3. README.md --> 说明书
  4. .npmignore --> 发布 npm 忽略的文件、文件夹
  5. 其他文件 --> .gitignore ts esline babel 等配置文件

(2)package.json 部分所需配置

  1. name --> 发布后的项目名,npm 搜索、安装的名字,设置前可在 npm 中搜索一下,不能重名
  2. main --> 打包后输出的文件路径,一般为 UMD 包的地址
  3. module --> 打包后输出的文件路径,ESMoudule(非必需,可根据项目裁剪)
  4. typings --> ts 类型声明路径(非必需,可根据项目裁剪)
  5. version --> 版本号:x.y.z,每次发布序更改版本号
  6. license --> 前面注册的许可证类型
  7. peerDependencies --> 需要宿主环境安装的依赖
  8. devDependencies --> 由于是库模式开发,所需的框架依赖,放到这里面
  9. repository --> 仓库地址,如:GitHub
  10. homepage --> 项目主页地址
  11. bugs --> bug 反馈地址,如:GitHub issue 地址
  12. keywords --> SEO关键词

(3)其他

# 提交到 Github,发布到 npm 无需提交到 Github
# 如果需要使用 gh-pages 分支展示项目,需要提交 Github
git subtree push --prefix dist origin gh-pages

4、发布项目

# 发布,每次发布的版本号不能是已发布的
npm publish

5、撤回发布

# 删除某个版本
npm unpublish <npm包名>@<版本号>

# 删除整个npm市场的包,24小时内不可再发布同名的包
npm unpublish <npm包名> --force

# 不删除,安装时会提示,版本号可忽略
# 如:npm deprecate <npm包名> '这个包已经不再维护了'
npm deprecate <npm包名>[@<版本号>] <message>

在这里插入图片描述

6、同步到cnpm

(1)自动同步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4y8tUXa-1685693427458)(https://lexiangla.com/assets/bc2d1ea6b7d211eda62b768546532b73)]

(2)手动同步

# 直接通过 sync 命令马上同步一个模块, 只有 cnpm 命令行才有此功能
cnpm sync <npm包名>
# 或者 直接通过 web 方式来同步
https://npmmirror.com/sync/<npm包名>

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

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

相关文章

如何做一个有质量的技术分享

分享信息并不难,大多数人都能做到,就算是不善言谈性格内向的技术人员,通过博客或社交媒体,或是不正式的交流,他们都能或多或少的做到。但是如果你想要做一个有质量有高度的分享,这个就难了。 所谓的有质量和有高度,我心里面的定义有两点: 分享内容的保鲜期是很长的会被…

win11本地安装k8s

1、确保本地已经安装DesktopDocker&#xff1b; 2、使用choco下载安装Kind&#xff0c;正常下载安装报错提示&#xff0c;建议使用管理员权限 使用管理员权限下载安装Kind 也可以从github下载kind到本地进行安装&#xff0c;下载地址 Releases kubernetes-sigs/kind GitHub …

分布式锁Redis基础理论与落地实现与Redisson。

分布式锁Redis基础理论与落地实现 基本概念基于Redis的分布式锁基本用法基于Redis实现分布式锁初级版本改进Redis的分布式锁问题Redis的Lua脚本利用Lua脚本写释放锁业务流程再次改进Redis的分布式锁 总结 Redisson基于setnx实现的分布式锁存在下面的问题Redisson入门Redisson可…

64位系统究竟牛逼在哪里?

想必大家都遇到过这样的问题&#xff1a;安装某个软件的时候&#xff0c;出现提示选择32位版本还是64位版本&#xff1f;我们也可以查看自己的电脑是32位还是64位系统。 Windows Linux 大家可能知道32位和64位和系统有关&#xff0c; 但其实 32 vs 64 可以有多重含义。 一般情…

JVM学习笔记(上)

1、总体路线 2、程序计数器 Program Counter Register 程序计数器&#xff08;寄存器&#xff09; 作用&#xff1a;是记录下一条 jvm 指令的执行地址行号。 特点&#xff1a; 是线程私有的不会存在内存溢出 解释器会解释指令为机器码交给 cpu 执行&#xff0c;程序计数器会…

GCC写个库给你玩,就这?

前言 什么是GCC GCC原名为 GNU C语言编译器 「GCC」(GNU Compiler Collection,GNU编译套件) 是由GNU开发的编程语言编译器。 正文 安装命令 sudo apt-get insatll gcc g注意安装版本要大于4.8.5因为4.8.5以后的版本才支持c11标准 查看版本 gcc -v gcc --version g -v g …

Vue.js 的数据双向绑定实现原理

Vue.js 的数据双向绑定实现原理 Vue.js 是一款流行的前端框架&#xff0c;它采用了数据双向绑定的方式&#xff0c;让前端开发人员更加方便地管理数据和视图。在本文中&#xff0c;我们将深入探讨 Vue.js 的数据双向绑定实现原理&#xff0c;以及相关的代码示例。 数据双向绑定…

1. TensorRT量化的定义及意义

前言 手写AI推出的全新TensorRT模型量化课程&#xff0c;链接&#xff1a;TensorRT下的模型量化。 课程大纲如下&#xff1a; 1. 量化的定义及意义 1.1 什么是量化&#xff1f; 定义 量化(Quantization)是指将高精度浮点数(如float32)表示为低精度整数(如int8)的过程&…

jmeter性能测试步骤实战教程

1. Jmeter是什么&#xff1f; 2. Jmeter安装 2.1 JDK安装 由于Jmeter是基于java开发&#xff0c;首先需要下载安装JDK &#xff08;目前JMeter只支持到Java 8&#xff0c;尚不支持 Java 9&#xff09; 1. 官网下载地址&#xff1a; http://www.oracle.com/technetwork/java/…

Map、Set和哈希表的应用练习(数据结构系列15)

目录 前言&#xff1a; 练习题&#xff1a; 结束语&#xff1a; 前言&#xff1a; 在上一节博客中小编给大家介绍了Map、Set和哈希表的一些简单的知识点&#xff0c;同时也给大家简单的演示了一下如何使用他们里面的一些基础方法&#xff0c;那么接下来让小编带着你们一起来…

当心!经济学家分析:未来三年内做好随时失业的准备

AI人工智能又来抢饭碗了&#xff0c;这次竟然通过了公认难考的会计行业考试&#xff01; 近期&#xff0c;OpenAI的大语言模型最新版GPT-4已经完成美国注册会计师&#xff08;简称CPA&#xff09;考试&#xff0c;四大主要会计考试所有科目的平均得分为85.1。 而在CPA考试中&…

落地页设计的营销心理学(三)

本文是「落地页设计的营销心理学」这个主题系列文章的收官篇&#xff0c;要给大家分享关于用户行动号召、提高用户参与度和整个营销落地页结构的设计。 回顾系列文章&#xff1a; 《落地页设计的营销心理学&#xff08;一&#xff09;》 《落地页设计的营销心理学&#xff08…

C++进阶 —— 线程库(C++11新特性)

十&#xff0c;线程库 thread类的简单介绍 在C11之前涉及多线程问题&#xff0c;都是和平台相关的&#xff0c;如windows和Linux下各有自己的接口&#xff0c;这使代码的可移植性较差&#xff1b;C11中最重要的特性就是对线程进行支持&#xff0c;使得C在并行编程时不需要依赖…

【社区图书馆】《写作脑科学》

文章目录 前言语言和思维写作技巧创造性思维总结 前言 杨滢著的《写作脑科学》是一本关于写作的科学读物&#xff0c;它深入探讨了人类大脑是如何进行创造性思维和表达的。这本书让我对写作有了全新的认识&#xff0c;也为我提供了一些实用的技巧和策略来提高自己的写作能力。…

整理 钢琴教材 约翰·汤普森现代钢琴教程(大汤)

邮箱不能及时回复,现放到网盘里了,文末按需自取 约翰-汤普森钢琴教程1 文件名:(大汤1)约翰汤普森现代钢琴教程 1 超清PDF 文件大小:9.9 MB 下载地址:https://download.csdn.net/download/qq_36040764/85051148 约翰-汤普森钢琴教程2 文件名:(大汤2)约翰汤普森现…

Python3中goto的用法

Python3代码指定跳转可以使用goto这个库&#xff1a; 安装&#xff1a; pip install goto-statement 一般安装的版本是1.2 需要做以下修改才能正常使用&#xff1a; python 使用goto&#xff0c;遇到的问题解决_奶嘴偷走初吻的博客-CSDN博客python goto 出现报错:Attribut…

Python difflib的使用

今天做了一个从list的内容取出一个与指定内容尽可能相似的内容,做完之后抽个几分钟记录下 difflib的作用 比对2个文件的差异. 使用的时候直接 import difflib 即可 get_close_matches 作用 匹配最大相似的内容返回结果 list1 ["abc", "acd", "…

NIO编程

目录 1、什么是NIO编程&#xff1f; 为什么说Java NIO是非阻塞的&#xff1f; 2、Java NIO 通道(Channel)详解 如何获取Channel对象&#xff1f; 3、Java NIO 缓冲区(Buffer)详解 &#xff08;1&#xff09;获取缓冲区对象 &#xff08;2&#xff09;将数据写入Buffer以…

没学过编程,本科学历,Java学到什么程度才能找工作?

好程序员之前写过多篇Java找工作方面的文章&#xff0c;今天说说零Java基础找工作的事情。首先请大家明确如下的要点。 1、在没有真实Java工作项目经验的前提下&#xff0c;靠自学&#xff0c;哪怕到培训班学&#xff0c;一定是无法真正掌握到能干Java项目的地步&#xff0c;原…

SpringData 基础篇

Spring Data 故事背景一&#xff1a;基础概念1.1 什么是SpringData1.2 为什么要用SpringData 二&#xff1a;JPA与Hibernate、MyBatis关系2.1 JPA与JDBC2.1.1 特点2.1.2 JPA规范提供2.1.3 JDBC的不足 2.2 Hibernate与JPA2.2.1 关系 2.3 mybatis 和Hibernate 三&#xff1a;Hibe…