VSCode 插件開發(fā)(三):插件打包與本地安裝

前言

來啦老鐵!

在上前兩篇文章:VSCode 插件開發(fā)(一):Hello World
VSCode 插件開發(fā)(二):插件開發(fā)實(shí)踐 中畅蹂,我們一起學(xué)習(xí)了 VSCode 插件項(xiàng)目是如何創(chuàng)建、VSCode 插件的基礎(chǔ)知識(shí)豫柬,以及嘗試開發(fā)了一個(gè)稍微復(fù)雜點(diǎn)的插件,而今天我們在之前文章的基礎(chǔ)之上,學(xué)習(xí)如何打包插件與本地安裝插件~

主要參考文獻(xiàn):

學(xué)習(xí)路徑

  1. 安裝打包工具穆桂;
  2. 修改 README.md掌猛;
  3. 靜態(tài)文件與 node_modues 文件夾處理盏浙;
  4. 打包插件;
  5. 安裝插件荔茬;
  6. VSCode 中查看已安裝的插件废膘;
  7. 使用插件;
  8. 插件功能拓展兔院;
  9. 安裝包共享殖卑;
  10. 思考;

1. 安裝打包工具坊萝;

  • 使用以下命令安裝 VSCode 插件的專用安裝工具:
npm install -g vsce

2. 修改 README.md孵稽;

  • 需要修改項(xiàng)目根目錄下的 README.md 文件內(nèi)容,刪除 “This is the README for your extension” 這句話十偶,如:
刪除 README.md 中的文本
  • 然后才能正常打包菩鲜,否者會(huì)出現(xiàn)以下錯(cuò)誤:
打包報(bào)錯(cuò)

(我們暫且先不修改 README.md 文件的其他內(nèi)容)。

3. 靜態(tài)文件與 node_modues 文件夾處理惦积;

  • 一些如 .txt接校、.json 文件等的靜態(tài)文件可以在開發(fā)的時(shí)候放在根目錄,如:
根目錄

放在根目錄狮崩,這樣我們就不用額外去復(fù)制這些靜態(tài)文件了蛛勉,vsce package 命令會(huì)幫我們完成;

  • node_modues 文件夾在運(yùn)行插件時(shí)有時(shí)候是必須的睦柴,特別是當(dāng)有外部依賴的時(shí)候诽凌,則此時(shí)需要修改 package.json 文件內(nèi)的內(nèi)容,將 devDependencies 字眼改為 dependencies 即可坦敌,這一點(diǎn)非常重要侣诵,如:
dependencies

4. 打包插件;

  • 接下來我們開始打包我們的插件狱窘,使用命令:
vsce package
  • 看到 Done 字眼即可:


    打包插件
  • 我們能看到插件安裝包路徑為:/Users/dylan.z.zhang/Desktop/case2script/case2script-0.0.1.vsix

  • 也能在項(xiàng)目根目錄下看到該安裝包:


    根目錄-安裝包

5. 安裝插件杜顺;

  • 使用如下命令安裝我們打包好的插件,如:
code --install-extension /Users/dylan.z.zhang/Desktop/case2script/case2script-0.0.1.vsix
  • 或者類似:
code --install-extension ./speed-up-scripting-1.0.0.vsix

code --install-extension 后面帶的就是步驟 3 生成的安裝包文件路徑蘸炸;

安裝插件
  • 安裝完成后躬络,我們會(huì)在 ~/.vscode/extensions 目錄下看到我們安裝好的插件目錄,如:
插件 - 1
注:文件夾名上有個(gè) undefined搭儒, 這是因?yàn)槲覀儧]有配置發(fā)布者的名字洗鸵,如何配置呢越锈?

a. 在 package.json 中配置 "publisher" 項(xiàng)即可,如:

publisher

b. 效果如下:

publisher 效果 1
publisher 效果 2
  • 安裝好的插件文件夾內(nèi)的結(jié)構(gòu):


    插件 - 2

6. VSCode 中查看已安裝的插件膘滨;甘凭;

  • 插件安裝完成后,我們就能在 VSCode 內(nèi)看到我們的插件了火邓,入口如下:
查看已安裝的插件

注意:如果是更新丹弱,則需要重啟 VSCode 或卸載插件并重裝拆件以使用最新版本的插件;

7. 使用插件铲咨;

  • 在 VSCode 內(nèi)看到我們的插件后躲胳,我們就可以用我們的快捷鍵或快捷菜單來執(zhí)行我們的插件了;

例如我做了個(gè)簡易的生成自動(dòng)化腳本模板的插件(生成的自動(dòng)化腳本纤勒,部分信息需要調(diào)用 API 從用例管理平臺(tái)上獲取坯苹,然后組裝到模板中去,進(jìn)而生成我們的自動(dòng)化用例的初始代碼)摇天;

  • 輸入用例號(hào)粹湃;
啟動(dòng)插件
  • 自動(dòng)調(diào)用 API 并組裝自動(dòng)化用例的初始代碼;
自動(dòng)生成自動(dòng)化用例模板

8. 插件功能拓展泉坐;

  • 我還做了一個(gè)功能为鳄,那就是可以將配置文件清空的功能,以后如果有推廣腕让,方便適用于不同團(tuán)隊(duì)(當(dāng)然孤钦,不同團(tuán)隊(duì)如果技術(shù)棧一樣那就方便,如果技術(shù)棿客瑁或框架有差異偏形,那么用例模板和插件邏輯是要重點(diǎn)維護(hù)的);
清空配置文件
  • 接著我們再觸發(fā)自動(dòng)生成腳本時(shí)就會(huì)多出以下幾個(gè)問詢:
API Endpoint - 問詢
API Key - 問詢
Case 前綴 - 問詢

9. 安裝包共享觉鼻;

我們可以將打包出來的安裝包發(fā)給其他人俊扭,其他人使用插件安裝命令即可安裝我們的安裝包,進(jìn)而達(dá)到共享的效果滑凉,此處不再演示统扳;

由于該插件與公司內(nèi)部平臺(tái)緊密關(guān)聯(lián)喘帚,不適合發(fā)布到網(wǎng)絡(luò)上畅姊,因此我們就暫時(shí)不學(xué)習(xí)發(fā)布了。

10. 思考吹由;

解決自動(dòng)編寫自動(dòng)化腳本的問題若未,實(shí)際上從源頭側(cè)出發(fā)效果會(huì)更好,即規(guī)范化文本用例倾鲫,如用例的前置條件描述粗合、前置信息描述萍嬉、用例步驟等,則“用機(jī)器自動(dòng)寫自動(dòng)化腳本”才能發(fā)揮更多作用隙疚,但這個(gè)存在很多困難壤追,如:

  1. 文本用例通常是人為編寫的,要讓所有人遵循一定的規(guī)則去寫文本用例供屉,這個(gè)本身就是比較困難的事情行冰;
  2. 這樣的規(guī)則通常也是難以制定的,因?yàn)楫a(chǎn)品功能迭代比較快速伶丐,文本用例描述規(guī)則可能也經(jīng)常會(huì)發(fā)生變化悼做;
  3. 當(dāng)有較多的規(guī)則需要遵守時(shí),插件需要做很多定制化的功能哗魂,有時(shí)新增規(guī)則或規(guī)則發(fā)生變化肛走,則插件開發(fā)完成后,可能腳本都寫完了或者反而效率更低录别;
  4. 過往有些大神們還特意為寫腳本創(chuàng)建平臺(tái)朽色,通過平臺(tái)組裝出用例,實(shí)踐到最后發(fā)現(xiàn)維護(hù)這些規(guī)則本身就需要耗費(fèi)非常多的精力庶灿,得不償失~
  5. ...
因此纵搁,我個(gè)人更傾向于根據(jù)團(tuán)隊(duì)、項(xiàng)目的實(shí)際情況往踢,在一些底層范圍上做這種插件功能以提升工作效率腾誉,這樣的插件具有通用性,維護(hù)量非常小峻呕,“用機(jī)器半自動(dòng)寫自動(dòng)化腳本” 也還是可以的~

后續(xù)我就可以在這個(gè)插件上多下一些功夫利职,多增加一些通用功能,如文本用例版本對比等功能瘦癌,以期在編寫自動(dòng)化腳本的各個(gè)環(huán)節(jié)提升工作效率~

這只是我的初次嘗試猪贪,很多功能還有待研究,后續(xù)繼續(xù)加油~

能力有限讯私,歡迎指正热押、互相交流,感謝~

如果本文對您有幫助斤寇,麻煩點(diǎn)贊桶癣、關(guān)注!

感謝~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娘锁,一起剝皮案震驚了整個(gè)濱河市牙寞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖间雀,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悔详,死亡現(xiàn)場離奇詭異,居然都是意外死亡惹挟,警方通過查閱死者的電腦和手機(jī)茄螃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來连锯,“玉大人责蝠,你說我怎么就攤上這事∥ィ” “怎么了霜医?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驳规。 經(jīng)常有香客問我肴敛,道長,這世上最難降的妖魔是什么吗购? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任医男,我火速辦了婚禮,結(jié)果婚禮上捻勉,老公的妹妹穿的比我還像新娘镀梭。我一直安慰自己,他們只是感情好踱启,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布报账。 她就那樣靜靜地躺著,像睡著了一般埠偿。 火紅的嫁衣襯著肌膚如雪透罢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天冠蒋,我揣著相機(jī)與錄音羽圃,去河邊找鬼。 笑死抖剿,一個(gè)胖子當(dāng)著我的面吹牛朽寞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斩郎,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼脑融,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了孽拷?” 一聲冷哼從身側(cè)響起吨掌,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤半抱,失蹤者是張志新(化名)和其女友劉穎脓恕,沒想到半個(gè)月后膜宋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡炼幔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年秋茫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乃秀。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肛著,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跺讯,到底是詐尸還是另有隱情枢贿,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布刀脏,位于F島的核電站局荚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏愈污。R本人自食惡果不足惜耀态,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暂雹。 院中可真熱鬧首装,春花似錦、人聲如沸杭跪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涧尿。三九已至桨醋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間现斋,已是汗流浹背喜最。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庄蹋,地道東北人瞬内。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像限书,于是被迫代替她去往敵國和親虫蝶。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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