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

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

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

