使用node打造自己的命令列工具方法教程0
阿新 • • 發佈:2018-11-25
這篇文章主要介紹了使用node打造自己的命令列工具方法教程,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
一、實現一個簡單的功能
image
二、環境
1.系統: 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 時會執行的檔案(一定要在bin資料夾下)` `},` `"scripts"``: {` `},` `"keywords"``: [],` `"author"``:` `""``,` `"license"``:` `"ISC"` `}`
3.新建一個cli.js在當前的目錄下, 簡單修改
console.log('hello world'
)
4.然後轉到命令列, 輸入
npm link
5 檢視一下效果
image
正確打印出hello world就是成功了
6.實現預覽的效果
原理就是執行cli.js的時候,會讀取自己設定好的模板,然後在當前的目錄下生成一個檔案,
寫入模板的內容,簡單的程式碼如下
`#! /usr/bin/env node` `const fs = require(``'fs'``)` `const exec = require(``'child_process'``).exec` `var` `args = process.argv.slice(2)` `// 可以通過process.argv這裡獲得你輸入的引數` `//讀取內容(在當前的目錄下新建template資料夾和加入一個template.vue的模板)` `var` `content = fs.readFileSync(``'./template/template.vue'``)` `//生成內容` `fs.writeFileSync(args[0], content)` `// 使用vscode開啟` `exec(``'code '` `+ args[0])`
然後放開你的腦洞, 你就能組合出許多你自己喜歡的命令來享受你的工具了
以上就是本文的全部內容,希望對大家的學習有所幫助.