Npm开发自己的第一个库

news/2024/11/1 23:30:03/

目录

      • 开发并上传第一个库
        • 账号注册与登陆
        • 新库创建
        • 上传
        • 插件更新
        • 试试你的第一个插件吧!

开发并上传第一个库

账号注册与登陆

官网注册一个自己的账户,务必记住用户名,之后链接到 npm 需要使用

安装 nodejs,他会自动帮我们把 npm 添加到系统变量,打开命令行直接就可以用

开启命令行,输入 npm login
之后会让你依次输入:用户名、密码、邮箱(若是第一次登入还可能需要进行邮箱验证)
等待几秒就可以了


登陆报错解决

使用 npm login 并正确输入所有信息后往往还会发生以下几种报错:

最常见的是这个报错信息:[FORBIDDEN] Public registration is not allowed ,他存在两种原因

  1. 邮箱还没有验证,这个自己去官网验证
  2. 镜像源不是官方的,比如我们会使用更快的淘宝源,此时输入以下代码切换回原版镜像,之后就可以正常登录了 npm config set registry https://registry.npmjs.org/

如果日常使用的话我们依然可以切换回淘宝源:
npm config set registry https://registry.npm.taobao.org


新库创建

假设我们的新插件就叫做 zr-use,则新建同名文件夹;
进入该文件夹,命令行下执行 npm init -y,自动初始化 package.json

这是 package.json 中的几个关键参数

  1. name 插件名
  2. version 插件版本
  3. main 入口点,相对路径起始点为文件根目录
  4. anthor 作者名字

由于是首次开发,version 直接写 1.0.0 即可,再填入作者名以及其他小参数即可


根目录下(和 package.json 同级)新建入口文件 index.js

简单写一下我们的插件,赋予其两个功能

// 弹窗函数
function zr_alert(msg) {alert(msg);
}// 这里为了展示,不单独抽离函数,直接把zr_add的功能以箭头函数的形式导出了
module.exports = {zr_alert,zr_add: (a, b) => {console.log(a + b);},
};

新建 README.md 文件(根目录下),这个文件的内容会展示在 npm 官网插件资料页上,一般会写插件的用法以及安装等等


上传

上传前使用 npm whoami 验证当前用户是自己,否则请跳到第一步再次登录

根目录下打开命令行,输入以下命令上传: npm publish

没报错就代表成功了,此时你就可以通过 npm 官网搜到自己新上传插件了!


插件更新

每次更新插件代码后,都必须赋予一个新的版本号才能正常上传!!!

这是一个标准的插件版本号: 1.0.0
请最好依据 npm 标准来指定每次更新后应当变动的版号

版号首位:里程碑式更新或者大面积重做
版号中位:新功能较大幅度添加
版号末位:小补丁更新


有两种方式更新版本号:

方法一:
直接修改 package.json 里面的 version 字段,改成新版号;
然后 npm publish 上传

方法二:
使用命令自动更新版号(即修改 version 字段,为末位数字+1):npm version patch
然后上传 npm publish


试试你的第一个插件吧!

手动搭设 vue 脚手架,这里我们就不浪费笔墨描述了

不需要在 main.js 全局引用(因为插件体量很小,没必要浪费代码行)

在任意 vue 文件的 script 调用即可!

<script setup>import { zr_alert } from "zr-use";zr_alert("helloplugin");
</script>

打开网页,立即可见弹窗“helloplugin”



http://www.ppmy.cn/news/20169.html

相关文章

codeforces签到题之div3

前言 第一次&#xff43;&#xff4f;&#xff44;&#xff45;&#xff46;&#xff4f;&#xff52;&#xff43;&#xff45;&#xff53;&#xff0c;发现几个问题&#xff1a; 1,不知道选&#xff4c;&#xff41;&#xff4e;&#xff47;&#xff55;&#xff41;&…

C++基础入门丨7. 指针——一文搞懂指针

操作系统&#xff1a;Windows 10 IDE&#xff1a;Visual Studio 2019 文章目录1 什么是指针2 指针变量的定义和使用3 指针所占用的空间4 空指针和野指针5 const修饰指针6 指针和数组7 指针和函数8 指针、函数、数组1 什么是指针 我们知道每一个变量都有一个内存位置&#xff0…

elementUI Form表单多个form验证都通过后,再执行后面的操作

一、具体情况&#xff1a; formA、formB、formC。其中&#xff0c;formA的rules验证规则中&#xff0c;含有异步操作&#xff0c;会先调用后台接口&#xff0c;验证身份证是否存在。如下&#xff1a; data () { let isIdcardExist (rule, value,callback)>{ if(!this.formE…

机器自动翻译古文拼音 - 十大宋词 - 扬州慢 淮左名都 姜夔

扬州慢淮左名都 南宋姜夔 淮左名都&#xff0c;竹西佳处&#xff0c;解鞍少驻初程。 过春风十里&#xff0c;尽荠麦青青。 自胡马窥江去后&#xff0c;废池乔木&#xff0c;犹厌言兵。 将黄昏&#xff0c;清角吹寒&#xff0c;都在空城。 杜郎俊赏&#xff0c;算而今重到须惊…

C++绑定器

前言 在学习中&#xff0c;有句bind相关的代码看了一天终于懂了意思。。记录下 1. 问题引入 当时我看的部分是muduo的简单使用&#xff0c;卡在了这两句上 //给服务器注册用户连接的创建和断开回调 _server.setConnectionCallback(std::bind(&ChatServer::onConnection, …

零食商城|基于springboot的零食商城

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

高级通讯录(C语言)

目录 前言 为何要实现高级通讯录 高级通讯录实现&#xff1a; 创建通讯录 打印菜单 初始化通讯录 实现加载功能 实现添加功能 实现增容功能 实现删除功能 实现查询功能 实现修改功能 实现查询所有联系人功能 实现排序功能 实现清空功能 实现保存功能 实现退出功能 通讯录总代码…

【手写 Promise 源码】第五篇 - 实现 Promise 对异步操作的支持

一&#xff0c;前言 上一篇&#xff0c;翻译并理解了整个 Promise A 规范&#xff1b; 本篇开始&#xff0c;将基于 Promise A 规范&#xff0c;对我们的简版 Promise 源码进行功能完善&#xff1b; 本篇&#xff0c;将实现 Promise 对异步操作的支持&#xff1b; 二&#x…