资讯专栏INFORMATION COLUMN

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

YanceyOfficial / 1024人阅读

摘要:自发布以来就备受关注,也有很多媒体和开发者称为下一代。所以在写这个插件之前,我又为写了一个插件。插件提供了开箱即用的支持,开发者不需要任何配置,但是有一个前提是开发者需要使用内置的。

这几天为 Deno 开发了一个 VS Code 插件:Deno support for VSCode,GitHub 地址:https://github.com/justjavac/...。

自 Deno 发布以来就备受关注,也有很多媒体和开发者称 Deno 为“下一代 Node.js”。然而 Deno 的目标则是不兼容 Node.js,没有 npm,没有 package.json。

Deno 的目标旨在提供一个兼容浏览器的平台,因此 Deno 可以像浏览器的 ES Modules 那样,通过 URL 加载模块:

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

而且在加载模块时不能省略扩展名

但是,目前的所有开发工具都是为 Node.js 而构建的。在 TypeScript 中,我们不需要添加 .ts 扩展名。如果我们添加了,VS Code 会给我们一个错误提示:

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

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

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

而这个插件正是为了解决这 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 等。

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

祝,开发愉快。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109007.html

相关文章

  • deno原理篇-通信实现

    摘要:理解基础篇原理篇一启动加载通信方式执行代码和相似,包含同步和异步的方式,异步方式通过的实现。同时在异步通信完成后,会创建一个对象,将作为,作为,加入中。 理解deno-基础篇deno-原理篇一启动加载 通信方式 deno执行代码和node相似,包含同步和异步的方式, 异步方式通过async的实现。 Typescript/Javascript调用rust 在上一节中讲到deno的启动时会...

    ChristmasBoy 评论0 收藏0
  • 从源码一步步学习,Ryan Dahl的Deno实现原理

    摘要:之父在中的设计错误演讲中表示不允许将任意本地函数绑定至当中。所有系统调用都将通过消息传递完成序列化。两项原生函数与。这既简化了设计流程,又使得系统更易于审计。 Node之父ry:在Node中的设计错误演讲中表示: 不允许将任意本地函数绑定至 V8 当中。 所有系统调用都将通过消息传递完成(protobuf 序列化)。 两项原生函数:send 与 recv。 这既简化了设计流程,又使得...

    goji 评论0 收藏0
  • Deno 并不是下一代 Node.js

    摘要:长文预警字,图。开发并不是因为,也不是为了取代。不知道从官方介绍来看,可以认为它是下一代是如何脑补出来的。只是一个原型或实验性产品。所以,不是要取代,也不是下一代,也不是要放弃重建生态。的目前是要拥抱浏览器生态。 这几天前端圈最火的事件莫过于 ry(Ryan Dahl) 的新项目 deno 了,很多 IT 新闻和媒体都用了标题:下一代 Node.js。这周末读了一遍 deno 的源码,...

    mmy123456 评论0 收藏0
  • Deno 兼容浏览器具体指的是什么?

    摘要:里面有一句描述,可以看到的目标是兼容浏览器。那么这里的兼容浏览器到底如何是什么意思呢我简单谈谈我的理解吧。很多人还有误解以为兼容浏览器指的是会提供类似里的写法。 Deno 里面有一句描述:Aims to be browser compatible,可以看到 Deno 的目标是兼容浏览器。那么这里的兼容浏览器到底如何是什么意思呢? 我简单谈谈我的理解吧。 首先这里的兼容性肯定不是 Den...

    Yangyang 评论0 收藏0
  • VS Code插件开发介绍(一)

    摘要:发布插件插件开发完后就可以发布了,需要安装安装完后,需要去注册并生成一个。总结本文介绍了插件开发的基本流程,实现了一个简单的插件。更多的开发技巧,可以看这个系列的第二篇插件开发介绍二 前言 前段时间做了一个基于命令行的效率工具,可以自动生成组件的模板代码。自己用起来还觉得挺好,但在组内案例几次后大家都不愿意用,究其原因还是命令行工具使用起来门槛有点高,不方便。由于组内已经统一使用VS ...

    thursday 评论0 收藏0

发表评论

0条评论

YanceyOfficial

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<