如何搭建node腳手架項目

為什么搭建腳手架腳手架的作用不多贅述,廢話不多說


1.自定義全局命令
創(chuàng)建項目文件 mycli
npm init

根目錄創(chuàng)建bin目錄,bin目錄下新建 cli.js
cli.js加上這句話.從環(huán)境變量獲取node,畢竟大家安裝的位置不一樣

#! /usr/bin/env node

修改package.json

"bin": {
    "mycli": "bin/cli.js"
  },

命令全局化掛起

npm link

//原生處理命令,輸入下面代碼測試

mycli --help
console.log(process.argv)

得到結(jié)果

[
  'C:\\Program Files\\nodejs\\node.exe',
  'C:\\Users\\admin\\AppData\\Roaming\\npm\\node_modules\\mycli\\bin\\cli.js',
'--help'
]

//由此看出我們可以通過下面代碼來設(shè)置指令,比如help
if process.argv[2] == '--help' dosomething
 
2.處理自定義全局指令-commander插件

中文地址:https://github.com/tj/commander.js/blob/HEAD/Readme_zh-CN.md#%e5%ae%89%e8%a3%85
官方提供的commander使用方法

const { program } = require('commander');

program
  .option('--first')
  .option('-s, --separator <char>');

program.parse();

const options = program.opts();
const limit = options.first ? 1 : undefined;
console.log(program.args[0].split(options.separator, limit));

腳手架項目代碼commander,后面要模塊化拆分,這里是個使用的方法
項目搭建完會把代碼放到github

const { program } = require('commander')
program.option('-l --look <look>', '查看')
program
  .command('creat <project> [arrs...]')
  .alias('crt')
  .description('創(chuàng)建')
  .action((project, args) => {
    console.log(project)
    console.log(args)
  })
program.parse(process.argv)
3命令行問答交互-inquirer插件
安裝
//npm install --save inquirer//這會安裝最新版 不支持require
//使用require方式安裝
npm install --save inquirer@^8.0.0
官方地址:https://www.npmjs.com/package/inquirer
官方使用案例

//import inquirer from 'inquirer'; // 9.x版本支持import這樣引入
const inquirer = require('inquirer');


inquirer
  .prompt([
    /* Pass your questions in here */
  ])
  .then((answers) => {
    // Use user feedback for... whatever!!
  })
  .catch((error) => {
    if (error.isTtyError) {
      // Prompt couldn't be rendered in the current environment
    } else {
      // Something else went wrong
    }
  });
4.下載遠(yuǎn)程倉庫模板代碼-download-git-repo插件

官方地址:https://www.npmjs.com/package/download-git-repo

安裝
npm install download-git-repo
使用
//我的是github倉庫, 使用ssh方式 
//zycxwd/serverblog 用戶名/倉庫名
//傳參的 project是變量,對應(yīng)創(chuàng)建的文件名稱
const download = require('download-git-repo')
  download('github:zycxwd/serveblog', project, function (err) {
  console.log(err ? 'Error:' : 'Success:')
 })
5.命令行下載等待loading動畫提示--ora插件

官方地址:https://www.npmjs.com/package/ora/v/5.4.1

安裝

可以看到目前6版本都是import安裝,
教大家一個方法我常用的就是
找到versions看到下看下載最多的,直接就能看到下載最多有700多w次的5.x點進(jìn)去看就是require方式
所以直接安裝5版本

npm install ora@5
使用
//官方案例
const ora = require('ora');

const spinner = ora('Loading unicorns').start();

setTimeout(() => {
    spinner.color = 'yellow';
    spinner.text = 'Loading rainbows';
}, 1000);

//項目中使用
const spinner = ora('Loading unicorns').start()
spinner.text = '下載中,請等待...'
download('github:zycxwd/serveblog', project, function (err) {
   if (!err) {
      spinner.succeed('下載成功!')
      return
   }
   spinner.fail(err)
})
6.命令行美化--chalk插件
安裝

同ora一樣,我們看到新版本是import方式,找打versinos找下載最多的看到是4.x,并且看到確實是require方式就用它就好了

npm i chalk@4.1.2
使用
const chalk = require('chalk');

console.log(chalk.blue('Hello world!'));
7.項目地址

github:https://github.com/zycxwd/mycli

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末免猾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖序调,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件与纽,死亡現(xiàn)場離奇詭異,居然都是意外死亡谬盐,警方通過查閱死者的電腦和手機甸私,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飞傀,“玉大人皇型,你說我怎么就攤上這事≡曳常” “怎么了弃鸦?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長幢痘。 經(jīng)常有香客問我唬格,道長,這世上最難降的妖魔是什么颜说? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任购岗,我火速辦了婚禮,結(jié)果婚禮上门粪,老公的妹妹穿的比我還像新娘喊积。我一直安慰自己,他們只是感情好玄妈,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布乾吻。 她就那樣靜靜地躺著,像睡著了一般拟蜻。 火紅的嫁衣襯著肌膚如雪绎签。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天酝锅,我揣著相機與錄音诡必,去河邊找鬼。 笑死搔扁,一個胖子當(dāng)著我的面吹牛爸舒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阁谆,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碳抄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了场绿?” 一聲冷哼從身側(cè)響起剖效,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壳猜,沒想到半個月后育灸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡语御,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年爷光,在試婚紗的時候發(fā)現(xiàn)自己被綠了垫竞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛀序,死狀恐怖欢瞪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情徐裸,我是刑警寧澤遣鼓,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站重贺,受9級特大地震影響骑祟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜气笙,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一次企、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧潜圃,春花似錦缸棵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稚晚。三九已至崇堵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間客燕,已是汗流浹背鸳劳。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留也搓,地道東北人赏廓。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像傍妒,于是被迫代替她去往敵國和親幔摸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容