返回顶部
首页 > 资讯 > 前端开发 > VUE >如何使用node编写自己的cli工具
  • 735
分享到

如何使用node编写自己的cli工具

2024-04-02 19:04:59 735人浏览 薄情痞子
摘要

这篇文章主要介绍了如何使用node编写自己的cli工具,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。准备开发一个cli工具前首先要想好它能做

这篇文章主要介绍了如何使用node编写自己的cli工具,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

准备

开发一个cli工具前首先要想好它能做什么。以我自己为例,我需要一个工具,让我能只输入一行命令就帮我快速搭建好项目结构,就像这样:

如何使用node编写自己的cli工具

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

开始

首先创建你的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"
}

编写可执行文件

package.json中有一个"bin"字段,配置后才可以在控制台使用你的命令。

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

我们配置了"my-cli"命令来执行index.js文件。用你喜欢的编辑器,在项目主目录下创建一个index.js文件。

如何使用node编写自己的cli工具

注意第一行的"#! node"很重要,表示用node来执行这个文件。如果没有这句声明,就会在记事本中打开index.js文件。

全局安装你的包

使用 npm install -g 将你当前的项目安装到全局环境,现在你可以在命令行使用"my-cli"命令了。

如何使用node编写自己的cli工具

用fs模块快速生成项目模板

我们自定义的指令可以执行了,接下来编写代码实现功能。my-cli的主要功能就是生成项目模板,一个思路是用一个templates文件夹保存项目模板,然后通过fs.mkdir()来创建项目目录,最后把文件从templates文件夹拷贝到项目中去。

var fs = require('fs');
var path = require('path');

function copyTemplate (from, to) {
 from = path.join(__dirname, 'templates', from);
 write(to, fs.readFileSync(from, 'utf-8'))
}
function write (path, str, mode) {
 fs.writeFileSync(path, str)
}
function mkdir (path, fn) {
 fs.mkdir(path, function (err) {
  fn && fn()
 })
}

核心代码就这么点,是不是非常简单?

整个项目文件结构差不多就这个样子,把你需要的文件放到templates文件夹,然后用copyTemplate方法将文件拷贝到项目目录下。

如何使用node编写自己的cli工具

创建文件目录和拷贝文件的过程,代码看着比较丑陋

如何使用node编写自己的cli工具

接收命令行参数

平常我们使用命令行工具时都会用到参数,如 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(2)即可获取输入的参数数组。

如何使用node编写自己的cli工具

通过遍历参数数组来检查命令中输入了哪些参数。如果输入了预设的参数,就为config对象添加对应的属性,在生成文件时根据onfig判断是否将模板文件拷贝到项目中。继续丑陋的代码:


如何使用node编写自己的cli工具

本地运行

至此我们的项目已经基本完成了,使用 npm install -g 将项目安装到全局环境,然后新建一个项目文件夹,使用my-cli命令来生成项目模板。

如何使用node编写自己的cli工具

发布到npm仓库

要想将自己的包发布到npm上,首先得有一个npm账号,创建账号非常简单,输入npm adduser,简单三步即可完成创建。

如何使用node编写自己的cli工具

创建好user后,使用npm publish即可将当前项目发布到npm上了,以后就可以使用npm install -g my-cli 来安装你的cli工具。

如何使用node编写自己的cli工具

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用node编写自己的cli工具”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网VUE频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何使用node编写自己的cli工具

本文链接: https://lsjlt.com/news/77124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用node编写自己的cli工具
    这篇文章主要介绍了如何使用node编写自己的cli工具,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。准备开发一个cli工具前首先要想好它能做...
    99+
    2024-04-02
  • 详解用node编写自己的cli工具
    工作中接到新项目,开发前都需要先规划项目目录,然后一个个创建文件,搭建sass编译环境,下载jquery,Swiper等类库... 这些准备工作都要花上不少时间。每做一个项目,都会遇到同样的问题,再重复一遍...
    99+
    2022-06-04
    自己的 详解 工具
  • 如何使用PHP编写自己的HTTP负载测试工具?
    PHP是一种广泛使用的编程语言,尤其在Web开发方面得到了广泛的应用。在Web开发中,HTTP请求负载测试是一项非常重要的任务。HTTP请求负载测试可以帮助开发人员确定一个Web应用程序的能力和性能,以便更好地了解其运行状况。在本文中,我们...
    99+
    2023-10-01
    http load shell
  • node如何通过npm写一个cli命令行工具
    这篇文章给大家分享的是有关node如何通过npm写一个cli命令行工具的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。怎么做一个npm命令行插件。注册npm账户发布npm插件,首先...
    99+
    2024-04-02
  • 如何使用node开发并发布一个cli工具
    这篇文章主要为大家展示了“如何使用node开发并发布一个cli工具”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用node开发并发布一个cli工具”这篇文...
    99+
    2024-04-02
  • 基于node的cli工具开发使用详解
    目录前言背景功能特性效果预览插件开发使用实现原理使用到的工具package.jsonweb-cli.tsservice.tscreate.ts前言 如果文章对你有帮助的话,记得一键...
    99+
    2023-05-13
    node cli开发工具 node cli
  • 基于node的cli工具怎么开发使用
    本篇内容介绍了“基于node的cli工具怎么开发使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景公司内部有维护admin和h6两套基础...
    99+
    2023-07-05
  • 详解如何使用Node.js编写命令工具——以vue-cli为例
    vue-cli全局安装之后,提供了vue命令和vue init、vue list、vue build三个子命令,通过命令可以搭建基于vue.js的脚手架项目。本文简单介绍一下这些命令是如何实现的。 vue-...
    99+
    2022-06-04
    为例 如何使用 详解
  • python引入自己写的工具类
    假设项目目录结构是: common --dateutils.py scrip --report.py 当我们在report.py中直接使用 from dateutils import DateUtils 会报找不到模块的错误:No mod...
    99+
    2023-01-31
    工具 python
  • 编写 ASP Web Forms 控件:创建自己的强大工具
    ASP.NET Web Forms 控件是强大的工具,可帮助您创建动态和交互式的 Web 应用程序。通过创建自己的控件,您可以扩展 ASP.NET 框架并为您的应用程序添加自定义功能。 第一步:创建控件库项目 在 Visual Stud...
    99+
    2024-04-02
  • 如何使用pyinstaller打包时引入自己编写的库
    目录pyinstaller打包引入自己编写的库场景解决方案使用第三方库pyinstallerpyinstaller打包引入自己编写的库 场景 使用pyinstaller打包某个文件后...
    99+
    2024-04-02
  • 如何实使用Html5编写属于自己的画画板
    小编给大家分享一下如何实使用Html5编写属于自己的画画板 ,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!html5的绘图可以分为点,线,面,圆,图片等,点和线,这可是所有平面效果的基点,...
    99+
    2024-04-02
  • 如何使用工具切换node版本
    这篇文章主要讲解了“如何使用工具切换node版本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用工具切换node版本”吧!之前都没有接触过需要切换 n...
    99+
    2024-04-02
  • node中如何使用pkg打包工具
    这篇文章将为大家详细讲解有关node中如何使用pkg打包工具,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。命令行打包pkg -t nod...
    99+
    2024-04-02
  • 如何使用 Go 编写一个 Shell 同步工具?
    在日常开发中,我们经常需要在不同的机器之间同步文件或者目录。虽然有很多云存储服务可以使用,但是有时候我们还是需要一些本地的工具来完成这些任务。在这篇文章中,我们将介绍如何使用 Go 编写一个 Shell 同步工具。 首先,我们需要明确一下...
    99+
    2023-10-31
    shell 同步 索引
  • mfc如何添加自己编写的函数
    要在 MFC 中添加自己编写的函数,需要完成以下步骤:1. 打开 Visual Studio,在 MFC 应用程序项目中找到对应的类...
    99+
    2023-09-08
    mfc
  • 如何用Python编写nmap扫描工具
    这篇文章主要介绍“如何用Python编写nmap扫描工具”,在日常操作中,相信很多人在如何用Python编写nmap扫描工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python编写nmap扫描工具...
    99+
    2023-06-20
  • 如何使用自己开发的MYMON工具监控MYSQL运行状态
    这篇文章主要介绍如何使用自己开发的MYMON工具监控MYSQL运行状态,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、此工具展示方式:     工具将...
    99+
    2024-04-02
  • Java如何编写超时工具类
    这篇文章主要介绍Java如何编写超时工具类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Java是...
    99+
    2023-06-14
  • 使用Go语言编写的文件编辑工具
    用Golang编写的文件修改程序 近年来,Golang作为一种高效、简洁的编程语言,备受开发者的青睐。其强大的并发能力和易于学习的特点,使得它成为许多开发人员的首选之一。在日常开发中,...
    99+
    2024-02-26
    文件 golang 修改 go语言 标准库
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作