npm 卸载_手把手教你创建一个NPM包

  前言  

在前端,基于NodeJs的工程化开发已经是一个很成熟的解决方案,而工程化的构建又离不开诸多便捷又高效的可复用的NPM包,那么这些包是如何制作、发布的呢?今天我们就来研究一下这个问题。

  什么是NPM?  

NPM 是 NODE 的模块管理器,它包括安装、卸载、更新、查看、发布等功能,是前端工程化能够获得巨大成功的重要原因之一,关于NPM相关的知识,本文就不赘述了,有兴趣的读者可以前往官网学习相关的资料。 官方网站: https://www.npmjs.cn/

  初始化开发环境  

node模块就是发布到npm的代码包,我们通常使用 npm 自带的命令初始化 node 模块的环境。

16d847d0db25a565408955d6b6aa60d5.png

初始化的过程中会提示输入模块的相关信息,其中比较重要的是名字和版本号,模块名字是其他人安装时候的唯一ID标识,而版本号则是 node 模块的版本控制编号。 完成初始化后,会在本机生成一个 package.json 文件,它是管理模块的信息集合:

d1abbc26a40870c11a565c7afd00d6ed.png

还需要在package.json 同目录下创建一个 index.js,在这个文件中暴露出这个 node 模块的对外接口:

b23eec19fdf0e2af0f430bd17d1921c2.png

到这里,一个最简单 node 模块就已经开发完成了。

  命令行命令定义  

我们创建一个node 模块后,如果只是通过 main 暴露 node 模块的接口,那么其他人就只能使用模块引用的方式来使用,但是在一些情况下,我们不想做二次开发,而是希望直接通过命令行的方式来使用 node 模块的内容,比如说各种脚手架、SCSS编译等等。 好在 node模块提供了一种命令行定义的方法,bin 字段:

7c9574142eb0c97a51f564bed18e83ad.png

在package.json 的 bin 字段中,我们定义安装后可由命令行执行的命令,其中,key 值是命令的名称,是我们在命令行中调用的命令ID,value 值是在执行命令后执行的 js 地址,它等同于直接用 node 运行该 js:

b86b93ae5d168b307451eb3c8450ac55.png

我们来看下 ./bin/trace.bin.js文件里面的内容: b7f5ccb3bc6d2e0602d6b7d3979ac159.png 它和index.js 中的内容没有区别,只是两种不一样的路子,命令行其实是对 index.js 内容的封装,index.js 是对外暴露的接口。

  调试  

我们完成模块开发后,怎么才能知道我们的包是否按照指定的规则正常运行了?同时怎么调试相关的代码? 方法其实有不少,我就列三种: 1.直接用相对路径按照使用: b369a99cc36aa66b60297f8b826a3e45.png 2.发布临时的本地测试包: 890533c4de6910b16224899999d9beca.png 3. 发布一个正式现网的 beta 包: 这条我就列着,反正我不用!(方法同正式包发布,只是版本号区分)

  添加 README.md  

readme 文件还是需要的,它主要用于该项目模块的说明、使用方法等,在此我们不做深究,大家可以参考 markdown 的一些语法。 markdown官网: https://markdown-zh.readthedocs.io/en/latest/

  发布  

我们的node 模块开发完成后,需要发布到线上才能够让其他人使用,使用 npm 发布其实很简单,步骤如下: 1.到https://www.npmjs.com 上注册一个账号; 2.在命令行中输入添加用户命令,根据提示,输入相关的用户名、密码、邮箱:

7c1136e22fb53a5ea6711ec9ff66162b.png

3.最后在项目文件夹中输入发布命令(package.json同目录): ca52ca6df7757cbbca95968819aa620b.png 到这一步就完成发布了,其他人可以通过 npm 安装这个 node 模块,使用index.js 中暴露的方法了:
  • 调用模块暴露的接口

3a27b41b22b9f73ebfc897092a9e430a.png
  • 直接使用命令行调用

a6eb58c5b141382b78076b20542b4a31.png

至此,一个有功能齐全的NPM包就制作、发布完成了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值