我为 VS Code 开发了一个 Deno 插件

这几天为 Deno 开发了一个 VS Code 插件:Deno support for VSCode,GitHub 地址:https://github.com/justjavac/...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.

ts-error-2691

而另外一个问题则是,Deno 能够加载远程模块,可是 TypeScript 却不行。好比上面的代码,也是会报错的:json

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

ts-error-2307

而这个插件正是为了解决这 2 个问题。浏览器

可是这两个错误不是 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 等。ide

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 安装插件。

祝,开发愉快。

相关文章
相关标签/搜索