bob体育官方平台
详细明白用node编写本身的cli工具_node.js_脚本之家

行事中接到新类型,开采前都亟待先规划项目目录,然后三个个创设文件,搭建sass编写翻译景况,下载jquery,Swiper等类库... 那个计划工作都要花上多多小时。每做二个类型,都会境遇相似的题目,再重复叁回呢?是时候做点退换了:编写自个儿的cli工具,风姿浪漫行命令,3分钟步向coding状态!

正文以相好的my-cli为例,将支付到公布进程全部记录下来,看完本文,你将学会如何从零付出三个cli项目,怎样上传到github库,以致哪些行使npm公布温馨的包。

准备

支付三个cli工具前首先要想好它能做什么。以自己本人为例,作者索要一个工具,让本身能只输入风姿浪漫行命令就帮笔者极快搭建好项目结构,就好像那样:

是否很酷炫?放心,很简单。

bob体育app,第风度翩翩创立你的cli项目,并动用npm init成立二个package.json。

$ mkdir my-cli && cd my-cli$ npm init

据悉提醒一步步开立好package.json。name属性便是你发表到npm上的名字,这几个是不可能与npm上幸存项目重名的,四个小技艺是使用npm install下载你想要起的包名字,若是报错404,那么你的包名是可用的。最终创造好的package.json文件像那标准:

{ "name": "my-cli", "version": "0.0.1", "description": "Auto generate project template", "main": "index.js", "bin": { "my-cli": "./index.js" }, "repository": { "type": "git", "url": "git+https://github.com/hlme/my-cli.git" }, "keywords": [ "cli" ], "author": "798400626@qq.com", "license": "MIT", "bugs": { "url": "https://github.com/hlme/my-cli/issues" }, "homepage": "https://github.com/hlme/my-cli#readme"}

bob体育官方平台,编写可施行文件

package.json中有三个"bin"字段,配置后才具够在调控台使用你的指令。

"bin": { "my-cli": "./index.js"}

咱们配备了"my-cli"命令来举办index.js文件。用你爱怜的编辑器,在项目主目录下创制叁个index.js文件。

注意第意气风发行的"#! node"超级重视,表示用node来实施那些文件。若无那句注明,就能够在记事本中展开index.js文件。

全局安装你的包

选拔 npm install -g 将你眼前的品类安装到全局境况,以往您能够在命令行使用"my-cli"命令了。

用fs模块急迅变化项目模板

大家自定义的通令能够实践了,接下去编写代码完成效果与利益。my-cli的主要功用就是生成项目模板,三个思路是用三个templates文件夹保存项目模板,然后经过fs.mkdir(卡塔尔国来创制项目目录,最终把文件从templates文件夹拷贝到项目中去。

var fs = require;var path = require;function copyTemplate  { from = path.join(__dirname, 'templates', from); write(to, fs.readFileSync}function write  { fs.writeFileSync}function mkdir  { fs.mkdir { fn && fn}

基本代码犹如此点,是或不是特别轻便?

万事项目文件布局基本上就以此样子,把您必要的文件放到templates文件夹,然后用copyTemplate方法将文件拷贝到项目目录下。

开创文件目录和拷贝文件的长河,代码望着超级难看陋

接纳命令行参数

经常大家使用命令行工具时都会用到参数,如 webpack -p, express -e 等,现在大家来为和煦的cli增添选拔命令行参数的功效。为my-cli设计多少个参数,用来向项目中增多类库。

$ my-cli -j -s -v -b//-j :添加jQuery//-s :添加Swiper//-v :添加Vue//-b :添加Bootstrap

行使commander包能够简化拆解深入分析参数进度,然而本项目比较轻便,我也不想额外引进别的的包了,管理部分简单的参数其实并简单。

node中大家得以行使process.argv来拿到命令行参数,process.argv是多少个参数数组,第风姿浪漫项为node.exe的相对路线,第二项为实践该js的绝对路线,使用process.argv.slice就可以获取输入的参数数组。

经过遍历参数数组来检查命令中输入了什么参数。即便输入了预设的参数,就为config对象加多对应的性质,在调换文书时依据onfig推断是不是将模板文件拷贝到项目中。继续丑陋的代码:

本地运转

到现在甘休大家的品种现已基本做到了,使用 npm install -g 将项目安装到全局情状,然后新建一个体系文件夹,使用my-cli命令来变化项目模板。

发布到npm仓库

要想将和睦的包揭橥到npm上,首先得有叁个npm账号,创立账号特轻巧,输入npm adduser,不难三步就可以形成制造。

创办好user后,使用npm publish就可以将近期项目揭发到npm上了,现在就足以行使npm install -g my-cli 来设置你的cli工具。

结束语

相信大家看完本文后领会什么依据本身的急需制作cli工具了。本文中的my-cli比较轻便,权当作投砾引珠。要是想查看完整源码或许使用这么些工具,能够戳这里:github地址。

上述便是本文的全部内容,希望对大家的学习抱有利于,也冀望大家多多点拨脚本之家。

返回顶部