前言
之所以有這個需求,是因為想要在vscode插件開發的時候可以使用我們自己的組件庫,而我們的組件庫又是依賴於Angular的,所以如何將VSCode和Angular結合在一起使用就成為了必須要解決的問題。
首先,從項目搭建上,兩者可以說是完全獨立的,Angular有自己的腳手架
Angular CLI
,VSCode也有自己的腳手架vscode-generator-code
可以分別來看下兩者的項目結構:
Angular:

VSCode:

從項目結構來看,想把兩個結構強制組合,或者取其中的一個用都是不可行的,那么,最重點的問題來了,要怎么把兩個完全獨立的項目結構融合在一起呢?
解決思路
Angular與VSCode作為兩個獨立的模塊,將Angular最后打包的靜態文件作為VSCode的入口文件去引入。
實現流程
1. 先在VSCode里引入Angular的項目結構,如下圖所示,在VSCode中新建一個文件夾,專門用來存放Angular的項目結構,並且將所有頁面以及靜態資源全部放在Angular中,VSCode就負責處理數據

2. 配置Angular的打包路徑,
"outputPath": "../src/static",
3. 配置VSCode引入路徑為Angular的輸出文件
panel.webview.html = this.getHTMLTemplate(this.context, panel, "/index.html");
4. 到這里,可以說已經把Angular和VSCode進行了關聯,可以在VSCode里拿到Angular導出的頁面了,那么,此時此刻又產生了一個新的問題,我要如何在Angular里使用VSCode的API,和VSCode進行通信呢?
"dependencies": { "@types/vscode": "^1.44.0", // 引入依賴即可 }
小結
代碼無國界,目前國內使用Angular開發VSCode插件的可能寥寥無幾,度娘也沒有可行性方案,該方案是參考了git上一個日本人的代碼,親測有效~
最后的最后,貼上日本人的代碼庫地址:https://github.com/stm32p103/vsce-practice,極具學習指導意義,感恩~