内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Deno中如何使用Node模塊?

盡管方法不是很好,但有時(shí)別無(wú)選擇。

Deno 是基于 Web 技術(shù)的服務(wù)器端代碼執(zhí)行環(huán)境。

創(chuàng)新互聯(lián)長(zhǎng)期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為尼瀘西企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站制作,尼瀘西網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。Node 使用 JavaScript 與 commonjs 模塊,并把 npm/yarn 作為其包管理器?!疽曨l教程推薦:node js教程 】Deno 使用 Typescript 或 JavaScript, 以及現(xiàn)代的 javascript 導(dǎo)入語(yǔ)句。它不需要包管理器。

想要導(dǎo)入 deno 中的模塊,應(yīng)該通過(guò) URL 引用:

import { serve } from "https://deno.land/std/http/server.ts";

你可以在 Deno 標(biāo)準(zhǔn)庫(kù) 或 Deno 第三方模塊列表中找到更多需要的模塊,但是它們并不能滿足你所需要的一切。有時(shí)只能使用依賴 npm 生態(tài)所提供的模塊。下面是從最方便到最繁瑣的一些方法:

1. 如果模塊使用了 ES 模塊的 import/export 語(yǔ)法。

你在 deno 中所使用的庫(kù)不一定要來(lái)自推薦的 Deno 包,它們可以來(lái)自任何 URL,只要它們用了 import語(yǔ)法即可。通過(guò) unpkg 直接從 npm 存儲(chǔ)庫(kù)內(nèi)部訪問(wèn)這些文件不失為一個(gè)好方法。

import throttle from https://unpkg.com/lodash@4.17.19/throttle.js
2. 如果模塊本身沒(méi)有使用 imports,但源代碼用到了

如果是通過(guò) npm 編譯的模塊,或使用了錯(cuò)誤格式的模塊,那么是否使用其源代碼可能需要一些運(yùn)氣。許多流行庫(kù)的源代碼已經(jīng)從 commonjs 遷移到了符合標(biāo)準(zhǔn)的 ES 模塊的 import語(yǔ)法。

一些軟件包有單獨(dú)的 src/dist/目錄,其中 ES 模塊風(fēng)格的代碼位于 src/中,但 npm 中并未將其包含在軟件包中。在這種情況下,你可以直接從源進(jìn)行導(dǎo)入。

import throttle from "https://raw.githubusercontent.com/lodash/lodash/master/throttle.js";

可以通過(guò)單擊 github 上的 “raw” 按鈕得到這個(gè) URL,進(jìn)而獲取原始的 JS 文件。使用 github cdn 或查看文件是否可以通過(guò) github 頁(yè)面進(jìn)行訪問(wèn),這樣更直接,但卻是可行的。

特別注意: 一些庫(kù)將 ES 模塊與 webpack 一起使用,或者使用模塊加載器,使它們可以從 Node 模塊中導(dǎo)入,如下所示:

//不好的用法:
import { someFunction } from "modulename";
import { someOtherFunction } from "modulename/file.js";

標(biāo)準(zhǔn)的導(dǎo)入方法是,要以 ./開(kāi)頭或者是一個(gè)可以正常工作的 URL:

//標(biāo)準(zhǔn)的用法:
import { someOtherFunction } from "./folder/file.js";

不過(guò)你也可以嘗試下一種方法:

3. 導(dǎo)入 commonjs 模塊

幸運(yùn)的是,有一個(gè)名為 JSPM 的服務(wù),它能夠解析第三方模塊并對(duì) commonjs 模塊進(jìn)行編譯來(lái)用作 ES 模塊導(dǎo)入。該工具可用于在瀏覽器中使用 Node 模塊,而無(wú)需構(gòu)建步驟。但是我們也可以在這里用到它。

在我最近的項(xiàng)目中,想進(jìn)行推送通知,其中涉及生成 VAPID 的憑據(jù),有一個(gè)可以加密的 deno 密碼庫(kù),但是整個(gè)開(kāi)發(fā)過(guò)程很困難,我寧愿使用流行的 web-push 庫(kù)??梢杂?JSPM CDN 和如下 URL 進(jìn)行導(dǎo)入:

import webPush from "https://dev.jspm.io/web-push";

這樣可以在 deno 中向像使用其他任何模塊一樣去使用它。

使 Typescript 類(lèi)型能夠正常工作

在 deno 中使用 typecipt 有一個(gè)不錯(cuò)的功能,就是很容易能夠?yàn)槟K提供了非常完美的自動(dòng)補(bǔ)全功能。如果編輯器的 deno 擴(kuò)展知道類(lèi)型定義,它甚至可以自動(dòng)補(bǔ)全第三方模塊。

盡管這對(duì)代碼是否能夠正常工作不是必要的,但是可以幫你很好的維護(hù)代碼。

在我導(dǎo)入另一個(gè)名為 fast-xml-parser 的模塊時(shí),我注意到它有一個(gè)類(lèi)型定義文件是以 .d.ts結(jié)尾的。這些文件描述了各種接口,甚至適用于 JavaScript.js 文件。有時(shí)你還可以在 @types\\somemodule存儲(chǔ)庫(kù)中找到類(lèi)型定義文件。

例如:https://github.com/Definitely...

通過(guò)這個(gè)文件 typescript 可以自動(dòng)完成從 JavaScript 文件導(dǎo)入的內(nèi)容。即使對(duì)于用 JSPM 導(dǎo)入的文件也是如此:

// 導(dǎo)入 fast-xml-parser 庫(kù)
import fastXMLParser from "https://dev.jspm.io/fast-xml-parser";
// 從 fast-xml-parser 的源代碼導(dǎo)入類(lèi)型定義文件
import * as FastXMLParser from "https://raw.githubusercontent.com/NaturalIntelligence/fast-xml-parser/master/src/parser.d.ts";
//將 parser 與以下類(lèi)型一起使用
const parser = fastXMLParser as typeof FastXMLParser;

我從定義文件中將類(lèi)型定義導(dǎo)入為 FastXMLParser(請(qǐng)注意是大寫(xiě)的 F),它不包含任何有效代碼,但這是一個(gè)與我們要導(dǎo)入的代碼具有相同類(lèi)型的對(duì)象。

我從 JSPM 中將代碼導(dǎo)入為 fastXMLParser(小寫(xiě)字母 f),這是有效的代碼,但沒(méi)有類(lèi)型。

接下來(lái),把它們組合在一起來(lái)創(chuàng)建 parser,即 FastXMLParser類(lèi)型的 fastXMLParser。

最后希望你能?chē)L試一下deno。Deno 能夠使用任何一種用于 Web 甚至是用于 node/npm 的模塊,確實(shí)為這個(gè)新的服務(wù)器端庫(kù)生態(tài)奠定了良好的基礎(chǔ)。

更多編程相關(guān)知識(shí),可訪問(wèn):編程教學(xué)?。?

當(dāng)前名稱:Deno中如何使用Node模塊?
標(biāo)題URL:http://www.rwnh.cn/article48/cgphep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、軟件開(kāi)發(fā)、網(wǎng)站排名、外貿(mào)建站商城網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
长宁区| 闸北区| 明星| 永康市| 甘谷县| 江阴市| 东城区| 乌兰浩特市| 刚察县| 永吉县| 泰兴市| 涞水县| 晋州市| 平凉市| 桐城市| 万荣县| 嫩江县| 江城| 平定县| 栾城县| 洛南县| 化隆| 宜州市| 黄龙县| 株洲市| 九龙坡区| 赫章县| 望江县| 磐安县| 玉龙| 华容县| 沙河市| 花垣县| 墨江| 交城县| 龙江县| 乐都县| 开化县| 武安市| 台州市| 农安县|