Изучение Дено
Deno — это новая среда выполнения безопасности TypeScript, созданная на основе движка Google V8 и недавно выпущенная до версии 0.1.8.
Эта среда выполнения предназначена для решения ряда проблем, которые приносит NodeJS:
Нет больше package.json, нет более часто меняющихся зависимостей;
Вместо этого сохраняйте файлы в свой проект или скачивайте их через http-ресурсы, после чего их можно постоянно кэшировать;
В то же время GYP (Generate Your Projects, система сборки Google с открытым исходным кодом, первоначально использовавшаяся для проекта Chromium, загрузила некоторые другие проекты с открытым исходным кодом и начала использовать GYP, такие как V8, Node.js, WebRTC и т. д.) , заменил его GN (GN — это система мета-сборки, которая генерирует файлы сборки Ninja, чтобы Chromium можно было собрать с помощью Ninja, файлы GN более удобочитаемы и ремонтопригодны, чем файлы GYP, GN в 20 раз быстрее, чем GYP);
Вместо прямого вызова системных методов передача сообщений через плоские буферы (FlatBuffers — это кроссплатформенная, эффективная библиотека инструментов сериализации с открытым исходным кодом, которая предоставляет интерфейсы C++/Java);
Он также поставляется с готовой поддержкой синтаксиса TypeScript, что устраняет необходимость в таких инструментах, как Babel, для компиляции TypeScript в JavaScript.
Эта статья не расскажет вам, насколько мощна Deno. Это просто краткое руководство, чтобы вы могли понять эту новую среду выполнения. Автор будет следить за тенденцией развития Deno, и если будет какой-то новый урожай, он будет синхронизирован со всеми.
Установить
Бинарные файлы доступны в репозитории Deno на GitHub, вы можете прочитать файл Readme репозитория и попробовать скомпилировать его самостоятельно. Процесс компиляции очень ресурсоемкий, поэтому убедитесь, что на вашем компьютере установлено не менее 4 ГБ ОЗУ и жесткий диск SSD, иначе вы потратите много времени на ожидание завершения компиляции.
Давайте загрузим и установим deno через Python, ведь Python установлен по умолчанию на Mac.
curl -sSf https://raw.githubusercontent.com/denoland/deno_install/master/install.py | python
Затем поместите Deno в переменную окружения
echo export PATH="/Users/cuitianze/.deno/bin":\$PATH >> $HOME/.bash_profile
Хорошо, готово!
запустить скрипт
В Deno вы можете запускать как файлы JavaScript, так и файлы TypeScript. Запустите свой код с помощью команды Deno с именем файла в качестве аргумента. Вы можете увидеть многочисленные примеры скриптов Deno в папке с тестами репозитория.
консольный вывод
Как и в любом другом языке или фреймворке, первое, что вы можете сделать, это вывести сообщение на консоль. Вы можете просто написать следующий код, чтобы напечатать «Hello World!».
console.log("Hello World!")
доступ к файловой системе
Deno предоставляет основные возможности доступа к синхронизации файловой системы, такие как функции readFileSync и writeFileSync.
Сначала создайте файл, содержащий строку «Dark Horse Front End»,
эхо Передняя часть Dark Horse >> hi.txt
Затем прочитайте этот файл со следующим кодом, чтобы создать hi.ts:
import { readFileSync } from "deno";
const data = readFileSync("hi.txt");
console.log(data);
Посмотрим, что распечатает?
Выводим данные в виде массива 8-битных целых чисел без знака через readFileSync. Если мы хотим преобразовать его в строковую форму, нам нужно использовать «TextDecoder», следующий код сгенерирует правильный вывод:
import { readFileSync } from "deno";
const decoder = new TextDecoder("utf-8");
const data = readFileSync("hello.txt");
console.log(decoder.decode(data));
Идеально! «Передняя часть Dark Horse» была успешно напечатана.
запись в файл
Теперь, когда мы прочитали и декодировали текстовый файл, следующее, что мы собираемся продемонстрировать, — это запись в файл. Делаем это через функцию writeFileSync. Эта функция должна передавать два параметра: один — путь к файлу, а другой — записываемое содержимое. Создаем hello.ts и пишем следующий код:
import { writeFileSync } from "deno";
const encoder = new TextEncoder("utf-8");
const data = encoder.encode("你好,黑马大前端");
writeFileSync("hello.txt", data);
Тем не менее, запись файла не так безболезненна, как чтение файла.
Это связано с тем, что Deno по умолчанию запрещает разрешения на запись и требует специальной авторизации разрешений на запись файлов, чтобы функция writeFileSync вступила в силу.
deno --allow-write hello.ts
Прохладный! Файл был успешно записан.
В реальном проекте мы не должны доверять файлам, представленным третьими лицами. В настоящее время должен быть более детальный доступ к файлам и контроль разрешений доступа к сети. Я также выразил свои сомнения основным членам Deno, к счастью. Дело в том, что уже запланирован более детальный контроль разрешений.
информация о файле прочитана
import { statSync } from "deno";
const fileInfo = deno.statSync("hi.txt");
console.log(fileInfo.isFile());
console.log(fileInfo.isSymlink());
console.log(fileInfo.isDirectory());
console.log(fileInfo.len); // File Size
console.log(fileInfo.modified); // Last modification date
console.log(fileInfo.accessed); // Last access date
console.log(fileInfo.created); // Creation date
Информация о полученном файле выглядит следующим образом:
таймер
Таймер поддерживает setTimeout, clearTimeout, setInterval и clearInterval,
Как и в случае использования JavaScript, здесь не приводится подробный обзор.setTimeout(function() {
console.log("---黑马来了---");},
3000);
Вы можете почувствовать это, запустив его самостоятельно, и результаты запуска следующие:
Существует также функция, о которой следует упомянуть, deno может напрямую запускать сетевые файлы.
Нравится 👍 С нетерпением жду развития Deno все лучше и лучше.
Автор этой статьи: Цуй Тяньцзе, передняя часть темной лошадки
WeChat сканирование
Обратите внимание на паблик аккаунта "Dark Horse Front End"