Райан Даль, создатель Node.Js, потратил свое драгоценное время на создание улучшенной версии Node.JS, то есть Deno. Deno — это не следующая версия Node.JS. По сути, это новая стандартная библиотека, которая использует среду выполнения как javascript, так и машинописного текста. Это может быть альтернативой NodeJS, сейчас Deno выпущен в экспериментальной версии v1.0.
Официальное определение Deno:
Безопасная среда выполнения для JavaScript и TypeScript.
Здесь означает безопасную среду выполнения, запуск Deno в sanbox, который обеспечивает безопасность от стороннего приложения для доступа через любые сетевые вызовы или вызовы файловой системы, если вы хотите получить доступ, вы должны предоставить разрешение, без каких-либо разрешений на доступ, которые вы не можете использовать любые службы инстанса Deno sanbox. И он использует как Javascript, так и Typescript из коробки для разработки API.
Встроенная среда Node.JS обеспечивает поддержку javascript, но если мы хотим использовать поддержку Typescript с NodeJS, нам нужно явно настроить typescript с помощью babel, чтобы он работал на Node.
Node — отличная серверная среда выполнения JavaScript сама по себе, в основном благодаря обширной экосистеме и использованию JavaScript. Тем не менее, Даль признает, что есть несколько вещей, о которых ему следовало бы подумать больше — безопасность, модули и зависимости, и это лишь некоторые из них.
Это не означает, что NodeJS не является отличным серверным языком сценариев, но в нем есть некоторые потоки, которые признал Ран Даль на конференции 2018 года. Он сказал, что когда в 2009 году появился Node.JS, Javascript еще не был достаточно зрелым. У него более старый способ обработки асинхронной активности, а также более старый способ использования модульности. Однако Deno пришел с решением проблем Node.
Пусть у нее какая-то фича, которую предоставляет Deno.
Модульность:
Deno загружает модуль с помощью новой функции ES6, такой как «импорт», а также пакет загружается с URL-адресов. Всякий раз, когда мы загружаем какой-либо пакет в приложение deno, он извлекает и кэширует пакет в локальном каталоге при первом запуске приложения, где, как и в NodeJS, он загружает и сохраняет весь пакет в папке node_modules из репозитория NPM. В NodeJS древовидная структура зависимостей
загружает все зависимые библиотеки, например, в папку node_modules.
npm install express
Всего будет загружено 48 пакетов, поэтому в случае NodeJS размер пакета больше, чем в случае с Deno.
Безопасность:
Приложение Deno всегда выполняется внутри «песочницы», поэтому другим приложениям не разрешается взаимодействовать с «песочницей». Поэтому, если вы хотите, чтобы любые вызовы сети или файловой системы были доступны для внешнего мира, вы должны разрешить.
Версии пакетов:
Поставщик пакетов предоставляет разные версии, поэтому, если мы хотим использовать какую-либо конкретную версию с Deno, мы должны указать ее в URL-адресе.
import { server } from "https://deno.land/[email protected]/http/server.ts";
Поддержка TypeScript:
Deno обеспечивает поддержку машинописного текста без каких-либо файлов конфигурации. Наряду с машинописным текстом можно создать приложение deno на JavaScript и выполнить его без каких-либо проблем.
Теперь давайте установим и настроим Deno для разработки.
Mac/Linux
curl -fsSL https://deno.land/x/install/install.sh | sh
PowerShell (Windows)
iwr https://deno.land/x/install/install.ps1 -useb | iex
Следующая команда предоставит информацию о версии Deno на вашем компьютере.
deno --version or deno -V
Чтобы получить помощь от deno
deno help
Чтобы оценить любое выражение
deno eval "console.log(45+10)"
Чтобы запустить deno REPL, закройте REPL, используя ctrl+d или ctrl+d, или Deno.exit().
Чтобы создать первый Hello world с помощью deno,
deno run https://deno.land/std/examples/welcome.ts
Чтобы выполнить программу из локального каталога, сначала создайте файл fileName.ts, а затем выполните команду этого типа файла, которая скомпилирует, а затем запустит его.
deno run fileName.ts
Чтобы создать HTTP-сервер, мы должны импортировать файл server.ts deno.land, чтобы запустить этот файл, мы должны разрешить сетевой вызов с помощью -allow-net, иначе песочница выбрасывает и выдает ошибку.
deno run --allow-net index.ts
Вывод
Создание Deno заставит сообщество разработчиков задуматься о следующей замене среды выполнения NodeJS. Однако Deno исходит из мышления, ориентированного на безопасность, и децентрализованного подхода к управлению пакетами. Deno имеет встроенную поддержку TypeScript из коробки.
Хотя сейчас не самое подходящее время, чтобы лучше понять Deno, но определенно в будущем deno станет следующим пионером серверного скриптового движка для веб-разработчиков.
Ребята, считаете ли вы, что эта статья дает какое-то представление о Deno, если да? Поделитесь своим опытом, вопросами и отзывами ниже.
Спасибо, что прочитали!