我爲 VS Code 開發了一個 Deno 插件

這幾天爲 Deno 開發了一個 VS Code 插件:Deno support for VSCode,GitHub 地址:github.com/justjavac/v…java

自 Deno 發佈以來就備受關注,也有不少媒體和開發者稱 Deno 爲「下一代 Node.js」。然而 Deno 的目標則是不兼容 Node.js,沒有 npm,沒有 package.json。git

Deno 的目標旨在提供一個兼容瀏覽器的平臺,所以 Deno 能夠像瀏覽器的 ES Modules 那樣,經過 URL 加載模塊:github

import * as log from "https://deno.land/x/std/log/mod.ts";
複製代碼

並且在加載模塊時不能省略擴展名typescript

可是,目前的全部開發工具都是爲 Node.js 而構建的。在 TypeScript 中,咱們不須要添加 .ts 擴展名。若是咱們添加了,VS Code 會給咱們一個錯誤提示:npm

ts(2691): An import path cannot end with a '.ts' extension. Consider importing './hello' instead.json

而另外一個問題則是,Deno 能夠加載遠程模塊,可是 TypeScript 卻不行。好比上面的代碼,也是會報錯的:瀏覽器

ts(2307): Cannot find module 'https://deno.land/x/std/log/mod'.編輯器

而這個插件正是爲了解決這 2 個問題。ide

可是這兩個錯誤不是 VS Code 提供了,而是 TypeScript 的編譯器 tsc 提供的,所以須要修改 tsc 的功能。好消息是,TypeScript 從 2.3 開始便支持了 Language Service Plugin,這個功能僅能加強編輯體驗,沒法改變 TypeScript 核心行爲(好比改變類型檢查行爲)或增長新特性(好比提供一種新語法或者)。經過查看 Language Service Plugin 的說明文件,這個功能正是我須要的。工具

因此在寫這個 VS Code 插件以前,我又爲 TypeScript 寫了一個插件:typescript-deno-plugin。這個插件不只能夠用在 VS Code,還能夠用在任何支持 TypeScript 的編輯器,好比 Atom、Visual Studio、WebStorm 等。

VS Code 插件提供了開箱即用的 Deno 支持,開發者不須要任何配置,可是有一個前提是:開發者須要使用 VS Code 內置的 TypeScript。若是你在項目中自行安裝了 TypeScript,而且修改了 VS Code 的配置,使用了本身安裝的版本,則須要自行安裝配置 typescript-deno-plugin 插件。經過修改 tsconfig.jsonplugins

{
  "compilerOptions": {
    "plugins": [
      {
        "name": "typescript-deno-plugin"
      }
    ]
  }
}
複製代碼

若是你正在打算學習 Deno 的開發,能夠經過這個連接 Deno support for VSCode 安裝插件。

祝,開發愉快。

相關文章
相關標籤/搜索