摘要:是執(zhí)行的源文件的所在路徑,也就是文件所在的,也就是腳手架中的源文件路徑。
首先拋出一個(gè)問(wèn)題,大家在使用webpack,webpack-dev-server,babel-cli,vue-cli,npm這類工具的時(shí)候有沒(méi)有思考過(guò)一個(gè)問(wèn)題?為什么我全局安裝這個(gè)模塊之后,就能在shell中使用webpack,babel這些命令?
解答:之所以能使用webpack這些命令,意味著我在npm install webpack -g時(shí),有個(gè)可執(zhí)行文件添加到了我的環(huán)境變量中,如下圖:于是我在shell中敲擊webpack命令,系統(tǒng)就會(huì)在環(huán)境變量中查找webpack,然后執(zhí)行l(wèi)ink file指向的webpack bin目錄下的webpack.js 文件。接著就可以順利的執(zhí)行webpack相關(guān)的功能,編譯打包靜態(tài)文件........
那么讓我們開始用node寫一個(gè)CLI工具?。?!
第一步:首先要學(xué)會(huì)發(fā)布一個(gè)npm包很簡(jiǎn)單,到npmjs注冊(cè)一個(gè)賬號(hào),注冊(cè)好之后,到你的項(xiàng)目下
執(zhí)行 npm login,按提示操作即可
接著 npm publish,進(jìn)入你想要發(fā)布的包下,執(zhí)行該命令即可
不出意外,就成功發(fā)布了一個(gè)npm包
第二步:那么如何全局安裝這個(gè)包的時(shí)候,將可執(zhí)行文件注冊(cè)到環(huán)境變量?重點(diǎn)就是,package.json,bin配置可以將開發(fā)者希望執(zhí)行的腳本注冊(cè)到環(huán)境變量,順便把我的腳手架的項(xiàng)目結(jié)構(gòu)po出來(lái),源碼: https://github.com/zhentaoo/p...
在執(zhí)行 npm install -g poke-ball之后,就能在環(huán)境變量中找到link file kk
如圖:
此時(shí)當(dāng)我在shell中敲擊kk的時(shí)候,就會(huì)執(zhí)行對(duì)應(yīng)的kk文件,于是就有了接下來(lái)的一系列操作.
在寫腳手架工具中,容易混亂的一個(gè)問(wèn)題就是路徑,因?yàn)椴僮魑募倪^(guò)程中,你可能需要把CLI中的模版文件復(fù)制到當(dāng)前項(xiàng)目中。因此就出現(xiàn)了2個(gè)路徑
分別是
process.cwd() 當(dāng)前工作目錄,也就是你的當(dāng)前項(xiàng)目的路徑。
__dirname 是執(zhí)行的源文件的所在路徑,也就是bin文件所在的path,也就是腳手架中的源文件路徑。
第四步:優(yōu)化的點(diǎn)seed如果和CLI集成在一起,假如seed需要升級(jí),那么CLI也不得不升級(jí),所有使用方都不得不重新安裝CLI??梢园褍烧卟痖_。
CLI在new一個(gè)seed的時(shí)候,使用 git clone,但如果seed版本過(guò)多,seed的git倉(cāng)庫(kù)勢(shì)必很大.使用git clone --depth 1,只clone最新版本會(huì)是個(gè)不錯(cuò)的方案.之后在rm -rf .git
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/82592.html
摘要:從到完美,寫一個(gè)庫(kù)庫(kù)前端組件庫(kù)之前講了很多關(guān)于項(xiàng)目工程化前端架構(gòu)前端構(gòu)建等方面的技術(shù),這次說(shuō)說(shuō)怎么寫一個(gè)完美的第三方庫(kù)。使用導(dǎo)出模塊,就可以在使用這個(gè)庫(kù)的項(xiàng)目中構(gòu)建時(shí)使用功能。 從 1 到完美,寫一個(gè) js 庫(kù)、node 庫(kù)、前端組件庫(kù) 之前講了很多關(guān)于項(xiàng)目工程化、前端架構(gòu)、前端構(gòu)建等方面的技術(shù),這次說(shuō)說(shuō)怎么寫一個(gè)完美的第三方庫(kù)。 1. 選擇合適的規(guī)范來(lái)寫代碼 js 模塊化的發(fā)展大致有...
摘要:從到完美,寫一個(gè)庫(kù)庫(kù)前端組件庫(kù)之前講了很多關(guān)于項(xiàng)目工程化前端架構(gòu)前端構(gòu)建等方面的技術(shù),這次說(shuō)說(shuō)怎么寫一個(gè)完美的第三方庫(kù)。使用導(dǎo)出模塊,就可以在使用這個(gè)庫(kù)的項(xiàng)目中構(gòu)建時(shí)使用功能。 從 1 到完美,寫一個(gè) js 庫(kù)、node 庫(kù)、前端組件庫(kù) 之前講了很多關(guān)于項(xiàng)目工程化、前端架構(gòu)、前端構(gòu)建等方面的技術(shù),這次說(shuō)說(shuō)怎么寫一個(gè)完美的第三方庫(kù)。 1. 選擇合適的規(guī)范來(lái)寫代碼 js 模塊化的發(fā)展大致有...
摘要:年終總結(jié)結(jié)果到這個(gè)時(shí)間才寫,其實(shí)也是無(wú)奈。這一年最重要的事情就是順利從一只學(xué)生狗轉(zhuǎn)職為一只社畜。四月份畢業(yè)之后以前端工程師的職位入職天貓,到現(xiàn)在也差不多工作一年了。 年終總結(jié)結(jié)果到這個(gè)時(shí)間才寫,其實(shí)也是無(wú)奈。本來(lái)計(jì)劃過(guò)年寫的,沒(méi)想到Steam竟然開了個(gè)農(nóng)歷春節(jié)特惠,然后就被各種游戲打了,辣雞平臺(tái),斂我錢財(cái),頹我精神,耗我青春,害我單身 以下全都是個(gè)人看法,如果有不認(rèn)同的地方,請(qǐng)大吼一聲...
摘要:年終總結(jié)結(jié)果到這個(gè)時(shí)間才寫,其實(shí)也是無(wú)奈。這一年最重要的事情就是順利從一只學(xué)生狗轉(zhuǎn)職為一只社畜。四月份畢業(yè)之后以前端工程師的職位入職天貓,到現(xiàn)在也差不多工作一年了。 年終總結(jié)結(jié)果到這個(gè)時(shí)間才寫,其實(shí)也是無(wú)奈。本來(lái)計(jì)劃過(guò)年寫的,沒(méi)想到Steam竟然開了個(gè)農(nóng)歷春節(jié)特惠,然后就被各種游戲打了,辣雞平臺(tái),斂我錢財(cái),頹我精神,耗我青春,害我單身 以下全都是個(gè)人看法,如果有不認(rèn)同的地方,請(qǐng)大吼一聲...
閱讀 3921·2021-10-12 10:11
閱讀 3720·2021-09-13 10:27
閱讀 2606·2019-08-30 15:53
閱讀 2044·2019-08-29 18:33
閱讀 2262·2019-08-29 14:03
閱讀 1062·2019-08-29 13:27
閱讀 3380·2019-08-28 18:07
閱讀 847·2019-08-26 13:23