作者:飘落的枫叶
作为一个前端程序猿,大家对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]
本文暂时没有评论,来添加一个吧(●'◡'●)