Deno ist eine serverseitige Codeausführungsumgebung basierend auf Webtechnologie.
Wenn Sie Module in Deno importieren möchten, sollten Sie über die URL darauf verweisen:
import { serve } from "https://deno.land/std/http/server.ts";
Weitere benötigte Module finden Sie in der Deno-Standardbibliothek oder der Deno-Drittanbieter-Modulliste, aber sie können Ihren Anforderungen nicht gerecht werden braucht Alles was benötigt wird. Manchmal können Sie nur Module verwenden, die auf dem NPM-Ökosystem basieren. Hier sind einige Methoden, von den bequemsten bis zu den umständlichsten:
Die Bibliotheken, die Sie in Deno verwenden, müssen nicht aus den empfohlenen Deno-Paketen stammen, sie können von jeder URL stammen, solange sie die import
-Syntax verwenden. Eine gute Möglichkeit, direkt aus dem npm-Repository auf diese Dateien zuzugreifen, ist unpkg. import
语法即可。通过 unpkg 直接从 npm 存储库内部访问这些文件不失为一个好方法。
import throttle from https://unpkg.com/lodash@4.17.19/throttle.js
如果是通过 npm 编译的模块,或使用了错误格式的模块,那么是否使用其源代码可能需要一些运气。许多流行库的源代码已经从 commonjs 迁移到了符合标准的 ES 模块的 import
语法。
一些软件包有单独的 src/
和 dist/
目录,其中 ES 模块风格的代码位于 src/
中,但 npm 中并未将其包含在软件包中。在这种情况下,你可以直接从源进行导入。
import throttle from "https://raw.githubusercontent.com/lodash/lodash/master/throttle.js";
可以通过单击 github 上的 “raw” 按钮得到这个 URL,进而获取原始的 JS 文件。使用 github cdn 或查看文件是否可以通过 github 页面进行访问,这样更直接,但却是可行的。
特别注意: 一些库将 ES 模块与 webpack 一起使用,或者使用模块加载器,使它们可以从 Node 模块中导入,如下所示:
//不好的用法: import { someFunction } from "modulename"; import { someOtherFunction } from "modulename/file.js";
标准的导入方法是,要以 ./
开头或者是一个可以正常工作的 URL:
//标准的用法: import { someOtherFunction } from "./folder/file.js";
不过你也可以尝试下一种方法:
幸运的是,有一个名为 JSPM 的服务,它能够解析第三方模块并对 commonjs 模块进行编译来用作 ES 模块导入。该工具可用于在浏览器中使用 Node 模块,而无需构建步骤。但是我们也可以在这里用到它。
在我最近的项目中,想进行推送通知,其中涉及生成 VAPID 的凭据,有一个可以加密的 deno 密码库,但是整个开发过程很困难,我宁愿使用流行的 web-push 库。可以用 JSPM CDN 和如下 URL 进行导入:
import webPush from "https://dev.jspm.io/web-push";
这样可以在 deno 中向像使用其他任何模块一样去使用它。
在 deno 中使用 typecipt 有一个不错的功能,就是很容易能够为模块提供了非常完美的自动补全功能。如果编辑器的 deno 扩展知道类型定义,它甚至可以自动补全第三方模块。
尽管这对代码是否能够正常工作不是必要的,但是可以帮你很好的维护代码。
在我导入另一个名为 fast-xml-parser 的模块时,我注意到它有一个类型定义文件是以 .d.ts
结尾的。这些文件描述了各种接口,甚至适用于 JavaScript.js 文件。有时你还可以在 @typessomemodule
存储库中找到类型定义文件。
例如:https://github.com/Definitely...
通过这个文件 typescript 可以自动完成从 JavaScript 文件导入的内容。即使对于用 JSPM 导入的文件也是如此:
// 导入 fast-xml-parser 库 import fastXMLParser from "https://dev.jspm.io/fast-xml-parser"; // 从 fast-xml-parser 的源代码导入类型定义文件 import * as FastXMLParser from "https://raw.githubusercontent.com/NaturalIntelligence/fast-xml-parser/master/src/parser.d.ts"; //将 parser 与以下类型一起使用 const parser = fastXMLParser as typeof FastXMLParser;
我从定义文件中将类型定义导入为 FastXMLParser
rrreee
import
-Syntax von ES-Modulen migriert. 🎜🎜Einige Softwarepakete verfügen über separate Verzeichnisse src/
und dist/
, wobei sich der ES-Modulstilcode in src/
, aber in npm befindet Es ist nicht im Paket enthalten. In diesem Fall können Sie direkt aus der Quelle importieren. 🎜rrreee🎜Sie können diese URL erhalten, indem Sie auf Github auf die Schaltfläche „Raw“ klicken, um die ursprüngliche JS-Datei zu erhalten. Verwenden Sie github cdn🎜 oder prüfen Sie, ob die Datei über die Github-Seite zugänglich ist, was aber direkter ist machbar. 🎜🎜Besonderer Hinweis: Einige Bibliotheken verwenden ES-Module mit Webpack oder verwenden einen Modullader, um sie aus Node-Modulen importierbar zu machen, wie folgt: 🎜rrreee🎜Die Standard-Importmethode lautet: Beginnen Sie mit ./
oder eine funktionierende URL: 🎜rrreee🎜Sie können aber auch die nächste Methode ausprobieren: 🎜.d.ts
gibt. Diese Dateien beschreiben verschiedene Schnittstellen und gelten sogar für JavaScript.js-Dateien. Manchmal finden Sie Typdefinitionsdateien auch im @typessomemodule
-Repository. 🎜🎜Zum Beispiel: https://github.com/Definitely. .🎜🎜🎜Dieses Datei-Typoskript kann den aus JavaScript-Dateien importierten Inhalt automatisch vervollständigen. Dies gilt sogar für mit JSPM importierte Dateien: 🎜rrreee🎜 Ich habe die Typdefinition als FastXMLParser
aus der Definitionsdatei importiert (beachten Sie das große F) und sie enthielt keinen gültigen Code, aber dieser An Objekt vom gleichen Typ wie der Code, den wir importieren möchten. 🎜Ich habe den Code aus JSPM als fastXMLParser
(Kleinbuchstabe f) importiert, was gültiger Code ist, aber keinen Typ hat. fastXMLParser
(小写字母 f),这是有效的代码,但没有类型。
接下来,把它们组合在一起来创建 parser
,即 FastXMLParser
类型的 fastXMLParser
Parser
zu erstellen, der ein fastXMLParser
vom Typ FastXMLParser
ist. Abschließend hoffe ich, dass Sie es ausprobieren könnendeno
. Die Fähigkeit von Deno, jedes Modul für das Web oder sogar für Node/NPM zu verwenden, hat in der Tat eine gute Grundlage für dieses neue serverseitige Bibliotheksökosystem gelegt.Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmierlehre
! !
Das obige ist der detaillierte Inhalt vonWie verwende ich das Node-Modul in Deno?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!