使用node打造自己的命令行工具方法教程
一、實(shí)現(xiàn)一個(gè)簡(jiǎn)單的功能

二、環(huán)境
1.系統(tǒng): window 10
2.編輯器: vscode
3.node版本: 8.7.0
三、開始玩
1.打開命令行,新建一個(gè)pa'ckage.json
npm init
這時(shí)看到一個(gè)新的package.json生成了,使用編輯器打開
2.修改package.json,新增一個(gè)bin屬性
{
"name": "my-cli",
"version": "1.0.0",
"description": "",
"main": "index.js",
"bin": { // 增加bin屬性
"auto": "./bin/cli.js"
// 左邊的crp是定義的命令行的名字,可以自己隨便取, 右邊是命令行輸入 crp 時(shí)會(huì)執(zhí)行的文件(一定要在bin文件夾下)
},
"scripts": {
},
"keywords": [],
"author": "",
"license": "ISC"
}
3.新建一個(gè)cli.js在當(dāng)前的目錄下, 簡(jiǎn)單修改
console.log('hello world')
4.然后轉(zhuǎn)到命令行, 輸入
npm link
5 查看一下效果

正確打印出hello world就是成功了
6.實(shí)現(xiàn)預(yù)覽的效果
原理就是執(zhí)行cli.js的時(shí)候,會(huì)讀取自己設(shè)定好的模板,然后在當(dāng)前的目錄下生成一個(gè)文件,
寫入模板的內(nèi)容,簡(jiǎn)單的代碼如下
#! /usr/bin/env node
const fs = require('fs')
const exec = require('child_process').exec
var args = process.argv.slice(2) // 可以通過process.argv這里獲得你輸入的參數(shù)
//讀取內(nèi)容(在當(dāng)前的目錄下新建template文件夾和加入一個(gè)template.vue的模板)
var content = fs.readFileSync('./template/template.vue')
//生成內(nèi)容
fs.writeFileSync(args[0], content)
// 使用vscode打開
exec('code ' + args[0])
然后放開你的腦洞, 你就能組合出許多你自己喜歡的命令來(lái)享受你的工具了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
node.js中的path.delimiter方法使用說(shuō)明
這篇文章主要介紹了node.js中的path.delimiter方法使用說(shuō)明,本文介紹了path.delimiter的方法說(shuō)明、語(yǔ)法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime
這篇文章主要介紹了Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime 庫(kù)進(jìn)行日期格式化的實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了express框架引入EJS模版以及導(dǎo)入 silly-datetime 庫(kù)的格式化方法傳遞給EJS模版使用的相關(guān)操作技巧,需要的朋友可以參考下2023-05-05
node.js中的querystring.escape方法使用說(shuō)明
這篇文章主要介紹了node.js中的querystring.escape方法使用說(shuō)明,本文介紹了querystring.escape的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
手把手教你VSCode配置JavaScript基于Node.js的調(diào)試環(huán)境
最近在補(bǔ)數(shù)據(jù)結(jié)構(gòu),在用VScode調(diào)試js代碼文件結(jié)果怎么都不行,這篇文章主要給大家介紹了關(guān)于VSCode配置JavaScript基于Node.js的調(diào)試環(huán)境的相關(guān)資料,需要的朋友可以參考下2022-12-12
webstorm配置支持nodejs并自動(dòng)補(bǔ)全的方法
今天小編就為大家分享一篇webstorm配置支持nodejs并自動(dòng)補(bǔ)全的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-05-05
Express實(shí)現(xiàn)定時(shí)發(fā)送郵件的示例代碼
在開發(fā)中我們有時(shí)候需要每隔?一段時(shí)間發(fā)送一次電子郵件,或者在某個(gè)特定的時(shí)間進(jìn)行發(fā)送郵件,無(wú)需手動(dòng)去操作,基于這樣的情況下我們需要用到了定時(shí)任務(wù)。本文就來(lái)用Express實(shí)現(xiàn)定時(shí)發(fā)送郵件吧2023-04-04

