创建一个属于自己的npm包
00 分钟
2021-11-5
2023-9-11
type
status
date
slug
summary
tags
category
icon
password
 

一、关于NPM

notion image
npm(Node Package Manager)本来是Node.js的包管理工具,但随着JS这几年的蓬勃发展,现在npm已经成为了几乎所有跟JS相关的工具和软件包的管理工具,并且还在不断的发展完善中。现在最新版的Node.js的安装都会自带npm,装上Node.js就可以使用npm。

二、NPM 常用命令

以下命令是区分全局和局部(具体的项目路径下)的,全局命令带上-g即可。
  • 查看npm版本

  • 初始化npm信息
    • 初始化一个node项目目录(引导用户创建package.json,package.json中包含项目名称、版本、作者、git仓库地址)

  • 安装模块

  • 卸载模块

  • 列出已安装的模块

  • 更新/升级模块

  • 查看模块详情信息

三、编写NPM包

NPM平台上的包数量已经远远超出我们的想象,大多数时候我是发布自己编写NPM包,以便于大家下载使用,所以才有了这次的踩坑记录。

3.1、添加npm用户信息


添加用户信息时,需要保证npm的registry地址是指定npmjs官网,可通过npm config list查看具体的npm配置信息。
若registry地址是https://registry.npmjs.org/时,需要重新修改配置:

3.2、npm目录结构及编写

“rsvalidator”,顾名思义,我们要开发的是一个验证字符串合法性的npm模块。

根目录下的index.js 作为一个入口文件存在, 为了项目的可扩展性,我们会把所有实现代码放在lib文件夹内。

接下来在lib文件夹中创建一个index.js文件,用以编写我们的模块的「内容」:

那么到了这里,最简单版本的rsvalidator就已经完工了。

3.3、编写测试用例

Node.js中已经有很多优秀的测试框架,例如:mochajasmine等。
这里,我们选择了mocha作为测试框架。
  • 安装mocha

  • 引用 assert
mocha集成了很多的特性,用户可以根据项目的特点选择合适的特性进行测试用例的编写。而在此,我们可以选择”assertion”(断言)来对”rsvalidator”进行测试。

然后在终端中输入mocha,会自动运行test目录下的rsvalidator-test.js文件:

得到以下结果:

3.4、提交NPM包

最后一步就是直接提交npm包,需要注意的是模块名称不能跟平台上已有模块重复,否则无法发布更新。