Привет, мир
Deno — это защищённая среда выполнения для JavaScript и TypeScript.
Среда выполнения — это среда, в которой выполняется ваш код. Она предоставляет необходимую инфраструктуру для работы ваших программ, обрабатывая такие вещи, как управление памятью, операции ввода-вывода и взаимодействие с внешними ресурсами. Среда выполнения отвечает за перевод вашего кода высокого уровня (JavaScript или TypeScript) в машинные инструкции, которые понимает компьютер.
Когда вы запускаете JavaScript в веб-браузере (например, Chrome, Firefox или Edge), вы используете среду выполнения браузера.
Среды выполнения браузеров тесно связаны с самим браузером. Они предоставляют API для манипулирования моделью документа (DOM), обработки событий, выполнения сетевых запросов и многого другого. Эти среды выполнения работают в песочнице, они функционируют в рамках модели безопасности браузера. Они не могут получить доступ к ресурсам за пределами браузера, таким как файловая система или переменные среды.
Когда вы запускаете свой код с помощью Deno, вы выполняете свой код JavaScript или TypeScript непосредственно на вашем компьютере, вне контекста браузера. Поэтому программы Deno могут получать доступ к ресурсам на компьютере-хосте, таким как файловая система, переменные среды и сетевые сокеты.
Deno предоставляет удобный способ выполнения кода JavaScript и TypeScript. Независимо от того, предпочитаете ли вы динамичный характер JavaScript или безопасность типов TypeScript, Deno подойдёт вам.
Запуск скрипта
В этом руководстве мы создадим простой пример «Привет, мир» на JavaScript и TypeScript с помощью Deno.
Мы определим функцию capitalize, которая делает заглавной первую букву слова. Затем мы определим функцию hello, которая возвращает приветственное сообщение с заглавной первой буквой имени. Наконец, мы вызовем функцию hello с разными именами и выведем результат в консоль.
JavaScript
Сначала создайте файл hello-world.js и добавьте следующий код:
function capitalize(word) {
return word.charAt(0).toUpperCase() + word.slice(1);
}
function hello(name) {
return "Hello " + capitalize(name);
}
console.log(hello("john"));
console.log(hello("Sarah"));
console.log(hello("kai"));
Запустите скрипт с помощью команды deno run.
$ deno run hello-world.js
Hello John
Hello Sarah
Hello Kai
TypeScript
Этот пример TypeScript полностью идентичен примеру JavaScript, просто в коде добавлена дополнительная информация о типах, которую поддерживает TypeScript.
Создайте файл hello-world.ts и добавьте следующий код:
function capitalize(word: string): string {
return word.charAt(0).toUpperCase() + word.slice(1);
}
function hello(name: string): string {
return "Hello " + capitalize(name);
}
console.log(hello("john"));
console.log(hello("Sarah"));
console.log(hello("kai"));
Запустите скрипт TypeScript с помощью команды deno run.
$ deno run hello-world.ts
Hello John
Hello Sarah
Hello Kai
Инициализация проекта
Как вы только что увидели, хотя напрямую запускать скрипты с помощью deno run можно, для больших проектов рекомендуется создавать структуру проекта. Таким образом, вы можете организовать свой код, управлять зависимостями, задачами скрипта и легко запускать тесты.
Инициализируйте новый проект, выполнив следующую команду:
deno init my_project
Где my_project — имя вашего проекта. Вы можете подробнее узнать о структуре проекта.
Запуск проекта
Перейдите в директорию проекта:
cd my_project
Затем вы можете запустить проект напрямую с помощью команды deno task.
deno task dev
Посмотрите на файл deno.json в вашем новом проекте. Вы должны увидеть задачу dev в поле «tasks».
"tasks": {
"dev": "deno run --watch main.ts"
},
Задача dev — это распространённая задача, которая запускает проект в режиме разработки. Как видите, она запускает файл main.ts со флагом --watch, который автоматически перезагрузит скрипт при внесении изменений. Вы можете увидеть это в действии, если откроете файл main.ts и внесёте изменение.
Запуск тестов
В директории проекта выполните:
deno test
Это выполнит все тесты в проекте. Подробнее о тестировании в Deno и более подробное описание тестов мы рассмотрим в последующих руководствах. В данный момент у вас есть один тестовый файл, main_test.ts, который тестирует функцию add в main.ts.
Добавление в проект
Файл main.ts служит точкой входа в ваше приложение. Здесь вы напишете основную логику программы. При разработке проекта вы начнете с удаления стандартной программы добавления и замените её собственным кодом. Например, если вы создаёте веб-сервер, здесь вы настроите свои маршруты и будете обрабатывать запросы.
Помимо начальных файлов, вам, вероятно, понадобятся дополнительные модули (файлы) для организации кода. Рассмотрите возможность группирования связанных функций в отдельные файлы. Помните, что Deno поддерживает модули ES, поэтому вы можете использовать инструкции import и export для структурирования кода.
Пример структуры папок для проекта Deno:
my_project/
├── deno.json
├── main.ts
├── main_test.ts
├── routes/
│ ├── home.ts
│ ├── about.ts
├── services/
│ ├── user.ts
│ ├── post.ts
└──utils/
├── logger.ts
├── logger_test.ts
├── validator_test.ts
└── validator.ts
Такая структура поддерживает чистоту проекта и облегчает поиск и управление файлами.
🦕 Поздравляем! Теперь вы знаете, как создать простой скрипт как на JS, так и на TS, как запустить его в Deno с помощью команды deno run и как создать новый проект с помощью deno init. Помните, что Deno пропагандирует простоту и избегает сложных инструментов сборки. Сохраняйте свой проект модульным, тестируемым и организованным. По мере роста проекта адаптируйте структуру под свои потребности. И самое главное, получайте удовольствие, изучая возможности Deno!
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/tutorials/hello_world