Deno 1.34 publié, la commande de compilation deno prend en charge le package npm

Deno 1.34 a été officiellement publié La principale mise à jour vise à optimiser la compatibilité avec npm et Node.js, améliorant ainsi l'expérience globale des développeurs et jetant les bases de futures améliorations de performances.

Changements notables :

À partir de Deno v1.6,  deno compileil prend en charge la compilation du projet dans un seul fichier exécutable binaire, ce qui est pratique pour les développeurs :

  • Distribuez et exécutez des binaires sur toutes les principales plates-formes sans installer Deno ou ses dépendances
  • Inclure des ressources dans les exécutables pour améliorer la portabilité
  • Simplifiez le déploiement avec un seul binaire
  • Atteindre des temps de démarrage plus rapides

Après plusieurs versions d'itérations, deno compileWeb Worker et l'importation dynamique ont été pris en charge, et la dernière version a pris en charge les packages npm.

Voici un cowsayexemple de création d'un exécutable binaire autonome à l'aide de :

$ cat main.ts
import { say } from "npm:[email protected]";
console.log(say({ text: "Hello from Deno!" }));

$ deno compile --allow-read main.ts
$ ./main
 __________________
< Hello from Deno! >
 ------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Cette fonctionnalité est utile pour les pods Kubernetes qui utilisent souvent des adresses IP au lieu de noms de domaine, et pour DNS sur HTTPS/TLS qui nécessitent des adresses IP de serveur pour éviter les dépendances circulaires sur la résolution de noms.

Depuis Deno v1.34, toute API qui utilise TLS prend en charge l'utilisation d'adresses IP. Par exemple:

const resp = await fetch("https://1.1.1.1");
console.log(await resp.text());

Autres améliorations et corrections de bogues :

Auparavant, si Deno devait ignorer les fichiers ou dossiers de chaque sous-commande, il fallait le spécifier à plusieurs reprises :

{
  "fmt": {
    "exclude": ["target/"]
  },
  "lint": {
    "exclude": ["target/"]
  },
  "test": {
    "exclude": ["target/"]
  },
  "bench": {
    "exclude": ["target/"]
  }
}

excludeÀ partir de cette version, il est possible d'utiliser directement les propriétés  de niveau supérieur :

{
  "exclude": ["target/"]
}

Voir l'annonce de sortie pour plus de détails .

Guess you like

Origin www.oschina.net/news/242497/deno-1-34-released