成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

我為 VS Code 開發(fā)了一個(gè) Deno 插件

YanceyOfficial / 1227人閱讀

摘要:自發(fā)布以來就備受關(guān)注,也有很多媒體和開發(fā)者稱為下一代。所以在寫這個(gè)插件之前,我又為寫了一個(gè)插件。插件提供了開箱即用的支持,開發(fā)者不需要任何配置,但是有一個(gè)前提是開發(fā)者需要使用內(nèi)置的。

這幾天為 Deno 開發(fā)了一個(gè) VS Code 插件:Deno support for VSCode,GitHub 地址:https://github.com/justjavac/...。

自 Deno 發(fā)布以來就備受關(guān)注,也有很多媒體和開發(fā)者稱 Deno 為“下一代 Node.js”。然而 Deno 的目標(biāo)則是不兼容 Node.js,沒有 npm,沒有 package.json。

Deno 的目標(biāo)旨在提供一個(gè)兼容瀏覽器的平臺(tái),因此 Deno 可以像瀏覽器的 ES Modules 那樣,通過 URL 加載模塊:

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

而且在加載模塊時(shí)不能省略擴(kuò)展名

但是,目前的所有開發(fā)工具都是為 Node.js 而構(gòu)建的。在 TypeScript 中,我們不需要添加 .ts 擴(kuò)展名。如果我們添加了,VS Code 會(huì)給我們一個(gè)錯(cuò)誤提示:

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

而另一個(gè)問題則是,Deno 可以加載遠(yuǎn)程模塊,但是 TypeScript 卻不行。比如上面的代碼,也是會(huì)報(bào)錯(cuò)的:

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

而這個(gè)插件正是為了解決這 2 個(gè)問題。

但是這兩個(gè)錯(cuò)誤不是 VS Code 提供了,而是 TypeScript 的編譯器 tsc 提供的,因此需要修改 tsc 的功能。好消息是,TypeScript 從 2.3 開始便支持了 Language Service Plugin,這個(gè)功能僅能增強(qiáng)編輯體驗(yàn),無法改變 TypeScript 核心行為(比如改變類型檢查行為)或增加新特性(比如提供一種新語法或者)。通過查看 Language Service Plugin 的說明文件,這個(gè)功能正是我需要的。

所以在寫這個(gè) VS Code 插件之前,我又為 TypeScript 寫了一個(gè)插件:typescript-deno-plugin。這個(gè)插件不僅可以用在 VS Code,還可以用在任何支持 TypeScript 的編輯器,比如 Atom、Visual Studio、WebStorm 等。

VS Code 插件提供了開箱即用的 Deno 支持,開發(fā)者不需要任何配置,但是有一個(gè)前提是:開發(fā)者需要使用 VS Code 內(nèi)置的 TypeScript。如果你在項(xiàng)目中自行安裝了 TypeScript,并且修改了 VS Code 的配置,使用了自己安裝的版本,則需要自行安裝配置 typescript-deno-plugin 插件。通過修改 tsconfig.jsonplugins

{
  "compilerOptions": {
    "plugins": [
      {
        "name": "typescript-deno-plugin"
      }
    ]
  }
}

如果你正在打算學(xué)習(xí) Deno 的開發(fā),可以通過這個(gè)鏈接 Deno support for VSCode 安裝插件。

祝,開發(fā)愉快。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/109007.html

相關(guān)文章

  • deno原理篇-通信實(shí)現(xiàn)

    摘要:理解基礎(chǔ)篇原理篇一啟動(dòng)加載通信方式執(zhí)行代碼和相似,包含同步和異步的方式,異步方式通過的實(shí)現(xiàn)。同時(shí)在異步通信完成后,會(huì)創(chuàng)建一個(gè)對(duì)象,將作為,作為,加入中。 理解deno-基礎(chǔ)篇deno-原理篇一啟動(dòng)加載 通信方式 deno執(zhí)行代碼和node相似,包含同步和異步的方式, 異步方式通過async的實(shí)現(xiàn)。 Typescript/Javascript調(diào)用rust 在上一節(jié)中講到deno的啟動(dòng)時(shí)會(huì)...

    ChristmasBoy 評(píng)論0 收藏0
  • 從源碼一步步學(xué)習(xí),Ryan Dahl的Deno實(shí)現(xiàn)原理

    摘要:之父在中的設(shè)計(jì)錯(cuò)誤演講中表示不允許將任意本地函數(shù)綁定至當(dāng)中。所有系統(tǒng)調(diào)用都將通過消息傳遞完成序列化。兩項(xiàng)原生函數(shù)與。這既簡化了設(shè)計(jì)流程,又使得系統(tǒng)更易于審計(jì)。 Node之父ry:在Node中的設(shè)計(jì)錯(cuò)誤演講中表示: 不允許將任意本地函數(shù)綁定至 V8 當(dāng)中。 所有系統(tǒng)調(diào)用都將通過消息傳遞完成(protobuf 序列化)。 兩項(xiàng)原生函數(shù):send 與 recv。 這既簡化了設(shè)計(jì)流程,又使得...

    goji 評(píng)論0 收藏0
  • Deno 并不是下一代 Node.js

    摘要:長文預(yù)警字,圖。開發(fā)并不是因?yàn)椋膊皇菫榱巳〈?。不知道從官方介紹來看,可以認(rèn)為它是下一代是如何腦補(bǔ)出來的。只是一個(gè)原型或?qū)嶒?yàn)性產(chǎn)品。所以,不是要取代,也不是下一代,也不是要放棄重建生態(tài)。的目前是要擁抱瀏覽器生態(tài)。 這幾天前端圈最火的事件莫過于 ry(Ryan Dahl) 的新項(xiàng)目 deno 了,很多 IT 新聞和媒體都用了標(biāo)題:下一代 Node.js。這周末讀了一遍 deno 的源碼,...

    mmy123456 評(píng)論0 收藏0
  • Deno 兼容瀏覽器具體指的是什么?

    摘要:里面有一句描述,可以看到的目標(biāo)是兼容瀏覽器。那么這里的兼容瀏覽器到底如何是什么意思呢我簡單談?wù)勎业睦斫獍?。很多人還有誤解以為兼容瀏覽器指的是會(huì)提供類似里的寫法。 Deno 里面有一句描述:Aims to be browser compatible,可以看到 Deno 的目標(biāo)是兼容瀏覽器。那么這里的兼容瀏覽器到底如何是什么意思呢? 我簡單談?wù)勎业睦斫獍伞?首先這里的兼容性肯定不是 Den...

    Yangyang 評(píng)論0 收藏0
  • VS Code插件開發(fā)介紹(一)

    摘要:發(fā)布插件插件開發(fā)完后就可以發(fā)布了,需要安裝安裝完后,需要去注冊(cè)并生成一個(gè)??偨Y(jié)本文介紹了插件開發(fā)的基本流程,實(shí)現(xiàn)了一個(gè)簡單的插件。更多的開發(fā)技巧,可以看這個(gè)系列的第二篇插件開發(fā)介紹二 前言 前段時(shí)間做了一個(gè)基于命令行的效率工具,可以自動(dòng)生成組件的模板代碼。自己用起來還覺得挺好,但在組內(nèi)案例幾次后大家都不愿意用,究其原因還是命令行工具使用起來門檻有點(diǎn)高,不方便。由于組內(nèi)已經(jīng)統(tǒng)一使用VS ...

    thursday 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<