为了深入学习JS我写了一个JS工具库 | 从零到一发布到npm上(1)

简介: 自从工作以来,写项目的时候经常需要手写一些方法和引入一些js库JS基础又十分重要,于是就萌生出自己创建一个JS工具库并发布到npm上的想法于是就创建了一个名为learnjts的项目,在空余时间也写了几个工具函数,后续还会再继续增加...这篇文章就是一篇实战文章,我把自己创建项目,发布到npm,以及遇到的问题和解决方案全都记录了下来,如果你也想创建一个自己的js工具库,可以根据这篇文章一步一步的尝试一下

创建项目


打开命令窗口,创建一个项目文件

mkdir learnjts  // 创建了一个名为 learnjts 的文件夹
cd learnjts  // 进入此文件夹


image.png


然后初始化项目

npm init

我们可以看到:让我们给项目起一个名字,括号内是默认文件夹的名字,不用修改,回车就可以


image.png


还会弹出来许多的参数,我们可以写上,也可以一路回车,一直到最后,就会生成一个package.json文件夹


image.png


如果要修改可以直接在这里修改

创建一个src文件夹,里面放一些js文件,可以写工具方法,再在根目录下创建一个index.js作为入口文件


image.png


写工具方法


项目骨架已经建好了,接下来我们开始写工具方法

第一个工具方法,我写了一个数据类型的判断方法

先在src文件夹下面建一个getDataType.js

function getDataType(target){
    let type = typeof target
    // 判断是否是复杂数据类型
    if(type === 'object'){
        return Object.prototype.toString.call(target).replace(/^[object (\S+)]$/, '$1').toLowerCase();
    }else{
        // 基础数据类型直接返回
        return type
    }
}
//导出这个方法
export default getDataType


image.png


然后在index.js文件里导入 getDataType方法,并且验证是否能够使用

然后就会发现,报错了


从报错信息我们可以看到是 import出错了

解决方案:给package.js添加一个属性

"type":"module",

此时再运行一下可以看到,能够正常运行了


image.png


以后我们在src目录下肯定会增加很多工具函数,所以可以吧index.js当成一个入口,所有的工具函数都可以从这里导出出去

import getDataType from './src/getDataType.js'
export {
    getDataType,
}


image.png


注册npm账号


要想自己的工具库别人也能够使用,需要把它发到npm上 npm官网

此时就需要注册一个npm账号了

注册npm需要有一个邮箱,任何邮箱都可以,能接收到验证码就可以,注册时会收到验证码


image.png


开始发布


当你注册好npm账号后,你就可以去项目中准备 发布 了


设置npm源


但是在发布之前,需要检查一下npm源,如果是其他源,就会发布失败,此时你需要把它设置为npm源

在项目终端里输入npm config get registry,可以查看当前源

npm config get registry


image.png


可以看到此时我的源是npm源,可以发布,如果是淘宝源呢?

就需要设置npm源

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


登录npm账号


因为我们是第一次发布包,所以需要在终端登录我们的npm用户,输入我们的用户名,和密码和邮箱

在终端输入

npm adduser

需要注意的是,我们输入密码时,不会再终端上显示出来,输入完直接按回车就好

接着开始让你输入npm的邮箱号,再次按回车时,会给你的邮箱发一个验证码,你需要把这个验证码再输入上


image.png


发布到npm上


登录好后,开始发布,在终端输入

npm publish

发布的时候,有可能就会报错:提示信息就会问你:你没有登录对账号吧?

其实真正的错误原因:是因为你的项目名称和npm上的项目重名了


image.png


在起名字的时候,你可以去npm上搜一下


image.png


嘿嘿^_^ 这个其实是我之前写好的,只是为了给大家演示,又从零搭建又写了一遍

如果没有搜到,则说明你可以使用这个名字


image.png


如果你重名了,你就在package.js里面改名吧


image.png


此时再次发布,就可以看到,发布成功了


image.png

回到npm,点击自己的头像,再点击Profile,就可以看到自己的npm库了


image.png


目录
相关文章
|
8月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
8月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
7月前
|
JavaScript 前端开发 API
淘宝店铺阿里旺旺采集工具,连接批量转旺旺ID,用Js接口实现效果
以下是淘宝店铺阿里旺旺采集工具的JS实现代码,包含批量获取店铺旺旺ID功能,当然仅
|
6月前
|
编解码 JavaScript 前端开发
如何在网页播放英文的m3u8文件(基于Javascript搭建的在线网页工具)
什么是m3u8?又该如何在网页中高效、便捷地播放英文的m3u8文件呢?今天这篇文章就带你一起了解,并推荐一种基于Javascript搭建的在线网页工具,让你轻松解决播放问题。
1473 0
|
8月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
8月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
8月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
JavaScript
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
997 13
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案

推荐镜像

更多
  • NPM