编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

如何发布NPM包,搭建CLI工具(详细教程)

wxchong 2024-07-23 21:24:50 开源技术 42 ℃ 0 评论

作者:飘落的枫叶

作为一个前端程序猿,大家对NPM肯定都非常熟悉,2009年5月Node.js发布,至此前端就进入飞速发展的时代,安装Node.js的同时,默认安装了NPM,NPM作为目前世界上最大的包管理器,包含超过86万个包,每星期下载量超53亿次。

我们几乎每天都在和NPM打交道,使用着各种各样的NPM包,但是如何自己去发布一个NPM包,或者搭建一个CLI工具呢?本文主要跟大家一起动手来一步一步实现自己的NPM包和CLI工具。

准备工作:
安装Node.js-- 下载地址:http://nodejs.cn/download/

下面就跟大家一起来动手实现NPM包和CLI工具

一、NPM包发布过程

1、新建文件夹(myFirstNPMDemo)

F:\npm_demo>mkdir myFirstNPMDemo
F:\npm_demo>cd myFirstNPMDemo
F:\npm_demo\myFirstNPMDemo>

2、执行npm init

执行过程中,根据提示输入相关信息,最终生成package.json文件,设置的name不能为现有的npm包名称,设置之前,可以去npm官网查询是否存在。

//package.json
{ 
 "name": "myfirstnpmdemo", 
 "version": "1.0.0", 
 "description": "第一个NPM包", 
 "main": "index.js", 
 "scripts": { 
 "test": "echo \"Error: no test specified\" && exit 1"
 }, 
 "keywords": [ 
 "npm"
 ], 
 "author": "飘落的枫叶", 
 "license": "ISC"
}

3、新建index.js

第二步中,默认设置的main为index.js,也就是包的入口文件,根据需要可以自行命名,我们在index.js写个简单的方法,用于打印日志

exports.consoleLog = function (str) { 
 console.log(consoleLog || '请传入参数');
}

4、创建npm账号

我们的包写好后,这是就需要发布到npm上,发布之前首先要创建自己的npm账号,打开npm官网(https://www.npmjs.com/)进行注册,注册过程中有不清楚的地方请自行百度。

5、添加账号

npm创建成功后,需要在我们的包项目中添加账号,进入我们的包项目根目录下,打开cmd,执行npm adduser,按照提示输入账号、密码、邮箱,即可完成账号的添加,添加完成后可执行npm whoami命令来检查是否添加成功。

//执行npm adduser命令添加账号
F:\npm_demo\myFirstNPMDemo>npm adduser
Username: 输入你的npm账号
Password: 输入你的npm密码
Email: (this IS public) 输入你的npm邮箱
Logged in as XXXX on https://registry.npmjs.org/
//执行npm whoami命令检查账号是否添加成功
F:\npm_demo\myFirstNPMDemo>npm whoami
XXXXXX //如果添加成功,此处会展示你添加的账号

6、发布

终于到发布这一步了,是不是有点小激动,发布也很简单,只需要执行npm publish即可,注意包名不能为npm上已经存在的包名,且npm的registry必须为官方源地址。

F:\npm_demo\myFirstNPMDemo>npm publish

7、检查是否发布成功、如何删除包

如何检查是否成功:当包发布完后,可以执行npm install myFirstNPMDemo(换成你的包名称) -g,如果能正常安装,说明包发布成功。

如何删除包:由于我们发布的是用于测试的包,为了不污染npm网站,所以我们要把改测试包删除,删除也只要在cmd中支持npm unpublish --force命令即可

F:\npm_demo\myFirstNPMDemo>npm unpublish --force

二、CLI工具开发过程

CLI工具开发及发布过程和npm包发布基本一致,主要多了两点,如何生成命令行工具以及如何与用户进行交互,为了方便大家按步骤进行操作,所以以下内容很多会和上面重复。

1、新建文件夹(my-cli-demo)

F:\npm_demo>mkdir my-cli-demo
F:\npm_demo>cd my-cli-demo
F:\npm_demo\my-cli-demo>

2、执行npm init

执行过程中,根据提示输入相关信息,最终生成package.json文件,生存后需要在文件中添加bin配置项

//package.json
{ 
 "name": "my-cli-demo", 
 "version": "1.0.0", 
 "description": "", 
 "main": "index.js", 
 "scripts": { 
 "test": "echo \"Error: no test specified\" && exit 1"
 }, 
 "bin": { 
 "my-cli-demo": "./index.js"
 }, 
 "author": "", 
 "license": "ISC"
}

3、新建index.js

第二步中,默认设置的main为index.js,也就是包的入口文件,根据需要可以自行命名,我们在index.js写个简单的方法,用于打印用户输入的信息

#! node
//顶部"#! node"很重要,表示node来执行这个文件
//写个简单的demo,用于打印用户输入的内容
//默认打印出请输入
let _userStr = '请输入';
//通过process.argv获取用户信息,
//process.argv是一个数组,前两项固定,第三项开始为用户输入的信息
if (process.argv.slice(2)[0]) { 
 console.info(process.argv);
 _userStr = process.argv.slice(2)[0];
}
console.log(_userStr);

4、本地安装该CLI

功能完成后,如果不需要发布到npm,而只需要在自己的电脑上使用,直接执行cmd命令npm install -g,这样就完成了CLI的安装,此时就可以使用该CLI。如果要发布到npm,供其他人下载安装,就继续执行后续步骤。

//安装CLI
F:\npm_demo\my-cli-demo>npm install -g
+ my-cli-demo@1.0.0added 1 package in 0.52s
//使用CLI
F:\npm_demo\my-cli-demo>my-cli-demo 这是我输入的内容
这是我输入的内容

5、创建npm账号--如果以创建,可跳过

我们的包写好后,这是就需要发布到npm上,发布之前首先要创建自己的npm账号,打开npm官网(https://www.npmjs.com/)进行注册,注册过程中有不清楚的地方请自行百度。

6、添加账号

npm创建成功后,需要在我们的包项目中添加账号,进入我们的包项目根目录下,打开cmd,执行npm adduser,按照提示输入账号、密码、邮箱,即可完成账号的添加,添加完成后可执行npm whoami命令来检查是否添加成功。

//执行npm adduser命令添加账号
F:\npm_demo\my-cli-demo>npm adduser
Username: 输入你的npm账号
Password: 输入你的npm密码
Email: (this IS public) 输入你的npm邮箱
Logged in as XXXX on https://registry.npmjs.org/
//执行npm whoami命令检查账号是否添加成功
F:\npm_demo\my-cli-demo>npm whoami
XXXXXX //如果添加成功,此处会展示你添加的账号

7、发布

终于到发布这一步了,是不是有点小激动,发布也很简单,只需要执行npm publish即可,注意包名不能为npm上已经存在的包名,且npm的registry必须为官方源地址。

F:\npm_demo\my-cli-demo>npm publish

8、检查是否发布成功、如何删除包

如何检查是否成功:当包发布完后,可以执行npm install my-cli-demo(换成你的包名称) -g,如果能正常安装,说明包发布成功。

如何删除包:由于我们发布的是用于测试的包,为了不污染npm网站,所以我们要把改测试包删除,删除也只要在cmd中支持npm unpublish --force命令即可

F:\npm_demo\my-cli-demo>npm unpublish --force

GitHub地址[https://github.com/hanhan3682523/light-app-cli]

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表