如何发布自己的 npm 包?

news2024/9/20 14:24:16

一. 准备工作

1. 注册 npm 账号

还没有 npm 账号?去官网注册: https://www.npmjs.com/
需要记住用户名、密码、邮箱

2. 查看本地 npm 镜像,如果不是默认的,需要改回来

npm config get registry

重置镜像路径

npm config set registry https://registry.npmjs.org

之后有需要再切换回国内加速镜像

npm config set registry https://registry.npm.taobao.org

二、创建 npm 包

在本地创建包目录,名为 selfinfo,进入到目录下面执行

npm init

初始化创建 package.json 包的信息

name:包名。
version:版本号,以后更新也要用到。
description:包的描述性文字。
main:包的入口文件,默认根目录的index.js。
还有其它就不一一介绍了

注意这里 name要唯一,不能和已发布的包重名,你可以到官网(https://www.npmjs.com/)搜索是否已经有了

{
  "name": "selfinfo",
  "version": "1.0.0",
  "description": "The introduction of Timfan",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "timfan",
  "license": "ISC"
}

然后我们在包目录中创建示例代码 index.js

export default "hello world!";

三、发布 npm 包

1. 在终端登录 npm 包管理平台

npm adduser

执行命令后依次输入用户名、密码、邮箱,最终输出如下内容表示登录成功。
Logged in as timfan on [https://registry.npmjs.org/.](https://registry.npmjs.org/.)

2. 开始发布

npm publish

第一次执行可能会提示:you must verify your email before publishing a new package: www.npmjs.com/email-edit,按照提示打开这个网址,输入第2步配置的邮箱,然后登录邮箱点击邮件进行验证即可。

E:\private\selfinfo>npm publish
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
npm notice
npm notice package: selfinfo@1.0.0
npm notice === Tarball Contents ===
npm notice 236B package.json
npm notice === Tarball Details ===
npm notice name:          selfinfo
npm notice version:       1.0.0
npm notice filename:      selfinfo-1.0.0.tgz
npm notice package size:  254 B
npm notice unpacked size: 236 B
npm notice shasum:        02b5c81a596c463cc7a9e060b5494c2f3a2d5ef1
npm notice integrity:     sha512-+OrYPim/sQhYy[...]/3vc3/qaOLJ6g==
npm notice total files:   1
npm notice
npm notice Publishing to https://registry.npmjs.org/
+ selfinfo@1.0.0

我们可以登录官网自己账号下查看发布的包是否成功
1680071287216-1a13b0ac-cd10-45c8-8512-7938964c9b90.png

或者通过命令 npm install <package-name>

E:\private\test>npm install selfinfo
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

added 1 package, and audited 2 packages in 47s

found 0 vulnerabilities

3. 更新包

后面如果我们需要升级包,改了包的代码,同步更新到包管理平台 npm,需要修改 package.json中的版本号,还是执行

npm publish

四、优化发布过程

为了避免每次发布、更新 npm 包需要执行一堆的命令,可能很难记住先后顺序,我们将执行的命令写进终端可执行的文件 shell 脚本中:

#!/usr/bin/env bash
set -e

# 修改npm源地址
npm config get registry
npm config set registry=http://registry.npmjs.org

# 登陆输入自己的npm账号和密码,还有邮箱
echo '登录npm'
npm login

echo "发布中..."
npm publish

# 改回npm源地址
npm config set registry=https://registry.npm.taobao.org
echo -e "\n发布成功\n"
exit

则每次只需执行该 shell 文件即可:sh "文件名"

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

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

相关文章

vulstack ATTCK(三)靶场

0x00环境搭建 两种形式 1.添加vmare2网卡&#xff0c;修改vmare2网卡的地址为192.168.93.0网段&#xff0c;注意不要在连接到主机适配器上打勾&#xff0c;这样会使本机也可以访问此电脑&#xff0c;5台机器都换成vmare2即可&#xff0c;第一台出网的centos在添加另一张nat网卡…

Docker容器---数据卷 数据容器

Docker容器---数据卷 数据容器 一、数据卷概述1、数据卷2、数据卷原理3、数据卷作用 二、数据卷容器1、数据卷容器作用2、创建数据卷容器 三、容器互联1、创建并运行源容器取名web12、创建并运行接收容器取名web2 一、数据卷概述 管理 Docker 容器中数据主要有两种方式&#x…

社科院与杜兰大学中外合作办学金融管理硕士项目——比起过往,前路更值得期待

当结束一天工作陷入沉思时&#xff0c;你有没有特别遗憾的事情呢&#xff0c;人生有太多的不确定性&#xff0c;比起过往&#xff0c;未知的人生更值得我们期待。与其懊恼没完成的遗憾&#xff0c;不如珍惜当下&#xff0c;努力创造未来。人生没有太晚的开始&#xff0c;在职读…

frp内网穿透——以连接到校园内网的服务器为例

有时候想摸鱼不去实验室&#xff0c;在宿舍就直接连接到实验室的GPU服务器。奈何服务器在校园网内部&#xff0c;外网无法直接直接访问。此时需要手动搭一个跳板机&#xff0c;来连接到内网的GPU服务器&#xff0c;这一过程怎么做到呢&#xff1f;我们可以使用frp内网穿透工具&…

Seata:连接数据与应用

作者&#xff1a;季敏&#xff08;清铭&#xff09;Seata 开源社区创始人&#xff0c;分布式事务团队负责人。 本文主要介绍分布式事务从内部到商业化和开源的演进历程&#xff0c;Seata 社区当前进展和未来规划。 Seata 是一款开源的分布式事务解决方案&#xff0c;旨在为现…

Java基础(十八):java比较器、系统相关类、数学相关类

Java基础系列文章 Java基础(一)&#xff1a;语言概述 Java基础(二)&#xff1a;原码、反码、补码及进制之间的运算 Java基础(三)&#xff1a;数据类型与进制 Java基础(四)&#xff1a;逻辑运算符和位运算符 Java基础(五)&#xff1a;流程控制语句 Java基础(六)&#xff1…

JavaScript黑科技:隐秘执行

JavaScript黑科技&#xff1a;隐秘执行 如果能使网页中的JavaScript代码隐密的加载、隐密的执行&#xff0c;那对于保护JavaScript代码来说是很有利的。 本文将探索、演示一种隐秘执行JavaScript代码的技术。 源码如下&#xff1a; <html> <script>window.onlo…

Prometheus+node_exporter+Grafana+夜莺 监控部署

一、安装Prometheus 1.1 部署并配置Prometheus #主机基础配置 [rootnode4~]# systemctl stop firewalld && systemctl disable firewalld [rootnode4~]# sed -i s/enforcing/disabled/g /etc/selinux/config && setenforce 0#上传prometheus安装包并解压 [r…

8、ThingsBoard使用docker compose集群部署的问题以及如何解决问题

1、问题回顾 接着上一节继续讲解,上一节我们把整个服务全部都运行起来了,但是访问页面报错,最后查看的问题是前端的容易里面报错: 然后执行脚本删除所有的容器 2、问题分析 当遇到这个问题的时候,我当时真的不知道如何去解决,然后我又尝试使用官方的镜像来部署,发现官…

P75分层解耦-IOCDI详解

一、分层解耦-三层架构 Dao层&#xff1a;数据访问 1、接口 package com.itheima.service;import com.itheima.pojo.Emp;import java.util.List;/*** Description:* date: 2023/4/19 21:47** since JDK 11*/ public interface EmpService { // 获取员工列表数据public List&l…

RabbitMQ·入门·壹

文章目录 1 MQ思想1.1 相关概念&#xff1a;同步、异步通讯1.1.1 同步通讯1.1.2 异步通讯 1.2 MQ思想概述1.2.1 1 MQ思想 1.1 相关概念&#xff1a;同步、异步通讯 通讯方式举例优势劣势同步通讯就像打电话&#xff0c;需要实时响应。打电话可以立即得到响应。不能跟多人同时…

垃圾回收相关算法

标记阶段的算法 垃圾标记阶段&#xff1a;对象存货判断 在堆里存放着几乎所有的Java对象实例&#xff0c;在GC执行垃圾回收之前&#xff0c;首先需要区分出内存中哪些是存活对象&#xff0c;哪些是己经死亡的对象。只有被标记为己经死亡的对象&#xff0c;GC才会在执行垃圾回…

AutoGPT 环境搭建教程

文章目录 前言一、注册OpenAI和Pinecone的账号&#xff0c;并获取key二、下载Git和Python3&#xff08;自己网上搜&#xff0c;无脑安装&#xff09;![在这里插入图片描述](https://img-blog.csdnimg.cn/95bafd5ebe9d468cbceeacbfc0cb939b.png)三、进入GitHub&#xff0c;安装A…

Flowable从入门到源码分析

什么是工作流&#xff1f; 工作流&#xff0c;是把业务之间的各个步骤以及规则进行抽象和概括性的描述。使用特定的语言为业务流程建模&#xff0c;让其运行在计算机上&#xff0c;并让计算机进行计算和推动。 工作流解决的痛点在于&#xff0c;解除业务宏观流程和微观逻辑的…

【Linux】基础IO,详解系统文件IO

目录 C语言文件操作简单回顾 C语言相关文件接口汇总 默认打开的三个流 系统文件I/O open open的第一个参数 open的第二个参数 open的第三个参数 open的返回值 close write read 文件描述符 什么是文件描述符 文件描述符分配规则 重定向 重定向的本质 输出重定…

ETCD(一)简介

1. ETCD是什么 etcd 是一个分布式键值对存储&#xff0c;设计用来可靠而快速的保存关键数据并提供访问。和数据库一样都是用来存数据的&#xff0c;但是etcd有自己的特点&#xff0c;因此有自己的使用场景。 2. etcd 特点 完全复制&#xff0c;集群中的每个节点均拥有全量数…

跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码)

跌倒检测和识别2&#xff1a;YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码) 目录 跌倒检测和识别2&#xff1a;YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码) 1. 前言 2. 跌倒检测数据集说明 &#xff08;1&#xff09;跌倒检测数据集 &#xff08;2&#xff09;自定…

《离散数学导学》精炼——第10章(序列)

Learning never exhausts the mind. 文章目录 引言正文元包序列的定义序列与函数的关系空序列长度连接头尾运算符限制运算符逆置运算符单射序列 引言 笔者一直觉得在计算机这一学科的学习中&#xff0c;离散数学是极为重要的知识基础。离散化的思想体现在计算机学科的方方面面…

SpringDataJPA

介绍&#xff1a; spirng data jpa是spring提供的一套简化JPA开发的框架&#xff0c;按照约定好的规则进行【方法命名】去写dao层接口&#xff0c;就可以在不写接口实现的情况下&#xff0c;实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能&#xff0c;如分页、排…

剖析Linux内核—fork背后隐藏的技术细节

1、前言 全文分为两部分讲解&#xff1a;fork的内存管理部分和进程管理部分&#xff0c;内存管理主要讲解子进程如何构建自己的内存管理相关基础设施&#xff0c;父子进程如何共享地址空间的&#xff0c;写时复制如何发生&#xff0c;页表层面为我们做了哪些事情等等。而进程管…