Maison > interface Web > js tutoriel > Comment utiliser le module Node dans Deno ?

Comment utiliser le module Node dans Deno ?

青灯夜游
Libérer: 2020-09-02 10:17:16
avant
2429 Les gens l'ont consulté

Comment utiliser le module Node dans Deno ?

Bien que la méthode ne soit pas très bonne, parfois on n'a pas le choix.

Deno est un environnement d'exécution de code côté serveur basé sur la technologie Web.

  • Node utilise les modules JavaScript et commonjs, et utilise npm/yarn comme gestionnaire de packages. [Recommandation du didacticiel vidéo : tutoriel node js]
  • Deno utilise Typescript ou JavaScript, ainsi que des instructions d'importation javascript modernes. Il ne nécessite pas de gestionnaire de paquets.

Pour importer un module dans deno, il doit être référencé via l'URL :

import { serve } from "https://deno.land/std/http/server.ts";
Copier après la connexion

Vous pouvez le trouver dans la Bibliothèque standard Deno ou Liste des modules tiers Deno Vous trouverez d'autres modules nécessaires dans , mais ils ne couvriront pas tout ce dont vous avez besoin. Parfois, vous ne pouvez utiliser que des modules qui s'appuient sur l'écosystème npm. Voici quelques méthodes de la plus pratique à la plus lourde :

1 Si le module utilise la syntaxe d'import/export du module ES.

Les bibliothèques que vous utilisez dans deno ne doivent pas nécessairement provenir des packages Deno recommandés, elles peuvent provenir de n'importe quelle URL, à condition qu'elles utilisent la syntaxe import. Un bon moyen d'accéder à ces fichiers directement depuis le référentiel npm consiste à utiliser unpkg.

import throttle from https://unpkg.com/lodash@4.17.19/throttle.js
Copier après la connexion

2. Si le module lui-même n'utilise pas les importations, mais que le code source l'utilise

S'il s'agit d'un module compilé via npm, ou si un module avec un mauvais format est utilisé, alors il est possible d'utiliser son code source. Nécessite un peu de chance. Le code source de nombreuses bibliothèques populaires a été migré de commonjs vers la syntaxe import conforme aux normes des modules ES.

Certains packages ont des répertoires src/ et dist/ séparés, où le code de style module ES se trouve dans src/ mais n'est pas inclus dans le package dans npm. Dans ce cas, vous pouvez importer directement depuis la source.

import throttle from "https://raw.githubusercontent.com/lodash/lodash/master/throttle.js";
Copier après la connexion

Vous pouvez obtenir cette URL en cliquant sur le bouton « brut » sur github pour obtenir le fichier JS original. C'est plus simple, mais faisable, d'utiliser github cdn ou de voir si le fichier est accessible via la page github.

Remarque spéciale : Certaines bibliothèques utilisent des modules ES avec webpack, ou utilisent un chargeur de modules pour les rendre importables à partir des modules Node, comme ceci :

//不好的用法:
import { someFunction } from "modulename";
import { someOtherFunction } from "modulename/file.js";
Copier après la connexion

La méthode d'importation standard est de commencer par ./ ou une URL qui peut fonctionner normalement :

//标准的用法:
import { someOtherFunction } from "./folder/file.js";
Copier après la connexion

Mais vous pouvez aussi essayer la méthode suivante :

3. Importez le module commonjs

Heureusement , il existe un service appelé JSPM, qui peut analyser les modules tiers et compiler les modules commonjs pour les utiliser comme importations de modules ES. Cet outil peut être utilisé pour utiliser les modules Node dans le navigateur sans étape de construction. Mais nous pouvons l'utiliser ici aussi.

Dans mon récent projet, je souhaite effectuer des notifications push, ce qui implique de générer des informations d'identification pour VAPID. Il existe une bibliothèque de mots de passe deno qui peut être cryptée, mais l'ensemble du processus de développement est difficile à utiliser. Bibliothèque web -push. Vous pouvez l'importer en utilisant JSPM CDN et l'URL suivante :

import webPush from "https://dev.jspm.io/web-push";
Copier après la connexion

De cette façon, vous pouvez l'utiliser dans deno comme n'importe quel autre module.

Permettre aux types Typescript de fonctionner correctement

Une fonctionnalité intéressante de l'utilisation de typecipt dans deno est qu'il est facile de fournir une fonction d'auto-complétion parfaite pour les modules. L'extension deno de l'éditeur peut même compléter automatiquement des modules tiers si elle connaît la définition du type.

Bien que cela ne soit pas nécessaire au bon fonctionnement du code, cela peut vous aider à bien maintenir le code.

Lorsque j'ai importé un autre module appelé fast-xml-parser, j'ai remarqué qu'il contenait un fichier de définition de type se terminant par .d.ts. Ces fichiers décrivent diverses interfaces et s'appliquent même aux fichiers JavaScript.js. Parfois, vous pouvez également trouver des fichiers de définition de type dans le référentiel @typessomemodule.

Par exemple : https://github.com/Definitely...

Ce fichier dactylographié peut compléter automatiquement le contenu importé du fichier JavaScript. Cela est vrai même pour les fichiers importés avec 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;
Copier après la connexion

J'ai importé la définition de type du fichier de définition sous la forme FastXMLParser (notez le F majuscule) et elle ne contient aucun code valide, mais voici un An objet du même type que le code que nous voulons importer.

J'ai importé le code de JSPM sous la forme fastXMLParser (f minuscule), qui est un code valide, mais n'a pas de type.

Ensuite, combinez-les ensemble pour créer parser, qui est un type FastXMLParser de fastXMLParser .

Enfin, j'espère que vous pourrez essayer deno. La capacité de Deno à utiliser n'importe quel module utilisé pour le Web ou même pour node/npm a en effet posé une bonne base pour ce nouvel écosystème de bibliothèques côté serveur.

Pour plus de connaissances liées à la programmation, veuillez visiter : Enseignement de la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal