13 мая 2020 года, наконец, Deno вышел, после двух лет своего первого выпуска.
На протяжении всех лет моей карьеры я всегда слышал о конце или другого языка или технологии программирования. Так было с Delphi, также PHP, внутри других. Совсем недавно настал очередь узла. JS.
Однажды, может быть, каждый язык программирования умрет ( я не уверен … ), но я действительно не верю в смерть node.js. По крайней мере, сейчас.
Как написано в документации DENO, это безопасное время выполнения JavaScript и TypeScript, которая использует V8 и встроен в Rust. Вы можете увидеть более подробную информацию в https://deno.land Анкет
По сути, Deno – это программа для запуска JavaScript и кода типовойписнойпис за пределами браузера, как и узел.
Дено был создан Райаном Далом, тем же создателем узла, но теперь с акцентом на безопасность и производительность. Это было объявлено Далом в 2018 году во время его выступления «10 вещей, о которых я сожалею о node.js» в JSConf Eu этот год.
Во -первых, чтобы начать, нам нужно установить DENO, и эта задача очень проста для любой операционной системы. Смотрите больше в https://deno.land/#installation Анкет
Deno-это программа командной строки. После его установки вы можете получить следующие команды, чтобы помочь вам начать работу с ним.
$ deno help
$ deno --h
$ deno --help
Чтобы запустить приложение DEDO, вам нужно просто использовать в командной строке:
$ deno run
Эта точка записи может быть файлом JavaScript ( .JS ) файл или TypeScript ( .TS ). Но отличная новость – это возможность использовать URL, который указывает на точку записи приложения.
Веб -сайт Deno содержит несколько примеров, подобных этим.
Давайте запустим это, чтобы увидеть, что произойдет.
$ deno run https://deno.land/std/examples/welcome.ts Download https://deno.land/std/examples/welcome.ts Compile https://deno.land/std/examples/welcome.ts Welcome to Deno 🦕
Дено скачал Wallow.ts Файл и составил его, и запустил. Если мы запустим приложение снова, Deno просто запустит его, потому что оно кэшируется Deno.
$ deno run https://deno.land/std/examples/welcome.ts Welcome to Deno 🦕
Дено загружает все модули и кэширует их. Он не будет загружать их снова, пока вы не запросите их с Перезагрузить флаг Анкет
$ deno run --reload https://deno.land/std/examples/welcome.ts Download https://deno.land/std/examples/welcome.ts Compile https://deno.land/std/examples/welcome.ts Welcome to Deno 🦕
И лучше всего, что когда Deno запускает приложение, оно составляло только файл TypeScript, то есть нам не нужно использовать какое -либо Transpiler для этого.
Это происходит потому, что Дено Поддерживает TypeScript Out из коробки Анкет
Модули Ecmascript против Commonjs
Deno использует последние функции Ecmascript в своих API и библиотеках, а из -за нативной поддержки модулей ES в Deno вам не нужно использовать другие инструменты сборки, чтобы подготовить ваше приложение для использования в браузере.
DENO поддерживает модули ES, а не синтаксис CommonJS, используемый узлом. В результате управление зависимостями очень простое и гибкое, и он просто использует локальный или удаленный URL, но также обеспечивает совместимость с узлом.
Например, требуется функции ( require () ) не поддерживается. Стандартный синтаксис ES Modules использует оператор Import для этого ( Импорт Defaultexport из "Module-name" ).
Для загрузки модулей CommonJS вы можете использовать createrequire (...) , как пример ниже.
import { createRequire } from "https://deno.land/std/node/module.ts";
const require = createRequire(import.meta.url);
// Loads native module polyfill.
const path = require("path");
// Loads extensionless module.
const cjsModule = require("./my_mod");
// Visits node_modules.
const leftPad = require("left-pad");
Более подробную информацию об этом и подобных примерах можно увидеть по ссылке https://deno.land/std/node .
Как мы видели ранее, мы можем использовать URL в качестве точки входа для запуска приложения DEDO. И как мы также можем использовать локальный или удаленный URL для управления зависимостями, которые я создал репозиторий на GitHub Чтобы отправить несколько примеров из Deno, и я могу просто импортировать зависимости оттуда.
Я просто создал файл с именем Hello.ts это импортирует Wallow.ts function Это печатает то же стандартное сообщение, которое мы использовали в предыдущих примерах.
Давайте посмотрим ниже содержание Hello.ts Анкет
import { welcome } from 'https://github.com/jaquiel/deno-features/raw/master/std/welcome.ts'
welcome()
Теперь результат запуска приложения.
$ deno run hello.ts Compile file:///C:/Users/jaquiel/Documents/vscode/deno/deno-features/std/hello.ts Download https://github.com/jaquiel/deno-features/raw/master/std/welcome.ts Download https://raw.githubusercontent.com/jaquiel/deno-features/master/std/welcome.ts Welcome to Deno 🦕
Это действительно очень Легко и Простой работать с Дено.
Как видно ранее, в собственной документации Дено она определяется как Безопасное время выполнения для JavaScript и TypeScript Анкет Чтобы получить доступ к чувствительным к безопасности областей или функций, вы должны использовать разрешения в командной строке.
Давайте посмотрим на пример веб -сайта Deno.
Работа без использования -Allow-Net Флаг мы получим следующий результат.
$ deno run https://deno.land/std/examples/echo_server.ts
error: Uncaught PermissionDenied: network access to "0.0.0.0:8080", run again with the --allow-net flag
at unwrapResponse ($deno$/ops/dispatch_json.ts:43:11)
at Object.sendSync ($deno$/ops/dispatch_json.ts:72:10)
at Object.listen ($deno$/ops/net.ts:51:10)
at Object.listen ($deno$/net.ts:152:22)
at https://deno.land/std/examples/echo_server.ts:4:23
Мы видим, что у нас была ошибка разрешения отказано. Но если мы используем флаг Приложение будет работать без каких -либо проблем.
$ deno run --allow-net https://deno.land/std/examples/echo_server.ts Listening on 0.0.0.0:8080
В ссылке https://deno.land/manual/getting_started/permissions#permissions-list , мы можем увидеть подробный список всех доступных разрешений.
Что ж, моя цель не было объяснить вам функции Дено, потому что документация может помочь вам легко понять это. Скорее, я просто хотел попробовать эти преимущества на практике.
Я повторяю свое мнение, что node.js не умрет и не будет заменен DENO, потому что это хорошо известная технология, которая, безусловно, останется в течение многих лет и, кроме того, его собственный создатель разработал только в качестве альтернативы узлу , а не как замена.
Наконец, хотя я верю в долгую жизнь для узла, я не могу не сказать, что функции нового Deno действительно захватывающие, и это, вероятно, новая шумиха.
Оригинал: “https://dev.to/jaquiel/deno-is-out-is-node-dead-68k”