Fresh — фреймворк для создания веб-приложений на JavaScript и TypeScript, ориентированный на Deno и использующий архитектуру islands. Установка и настройка окружения для Fresh принципиально отличаются от привычных процессов в экосистеме Node.js, поэтому требуют отдельного и подробного разбора.
Fresh работает исключительно на Deno, поэтому наличие Node.js, npm, yarn или pnpm не требуется и не используется.
Минимальные требования:
Fresh использует стандартные возможности Deno:
Рекомендуемый способ — PowerShell:
irm https://deno.land/install.ps1 | iex
После установки необходимо убедиться, что путь к Deno добавлен в
PATH.
Проверка:
deno --version
Через shell-скрипт:
curl -fsSL https://deno.land/install.sh | sh
Или через Homebrew (macOS):
brew install deno
Проверка:
deno --version
Fresh не использует:
package.jsonnode_modulesВсе зависимости подключаются напрямую по URL и кэшируются Deno автоматически.
Deno по умолчанию запускается в изолированной среде. Для работы Fresh требуются разрешения:
--allow-net — для HTTP-сервера--allow-read — для чтения файлов проекта--allow-env — для работы с переменными окружения
(опционально)Fresh-шаблоны уже учитывают это при запуске.
Fresh устанавливается без глобальной установки.
Команда создания проекта:
deno run -A -r https://fresh.deno.dev my-project
Параметры:
-A — все разрешения (упрощает начальную настройку)-r — автоматическая перезагрузка при изменении
файловmy-project — имя каталога проектаПосле выполнения команды создаётся полностью готовая структура приложения.
my-project/
├── components/
├── islands/
├── routes/
├── static/
├── main.ts
├── fresh.gen.ts
├── deno.json
main.tsТочка входа приложения. Здесь запускается сервер Fresh и подключаются middleware.
routes/Файловая маршрутизация:
[id].tsx)islands/Компоненты с клиентской логикой:
components/Обычные серверные компоненты без клиентского JS.
static/Статические файлы:
deno.jsonФайл конфигурации Deno и Fresh.
Пример:
{
"tasks": {
"start": "deno run -A --watch=static/,routes/ main.ts"
},
"imports": {
"$fresh/": "https://deno.land/x/fresh@1.6.5/"
}
}
Назначение:
deno task)Из каталога проекта:
deno task start
По умолчанию сервер доступен по адресу:
http://localhost:8000
Возможности dev-режима:
fresh.gen.tsfresh.gen.tsФайл fresh.gen.ts создаётся автоматически и
содержит:
Редактировать файл вручную не требуется. Он обновляется при изменении
структуры routes/ и islands/.
Fresh использует стандартный API Deno:
Deno.env.get("API_KEY");
Запуск с переменными окружения:
API_KEY=123 deno task start
Для Windows (PowerShell):
$env:API_KEY="123"
deno task start
Признаки корректно настроенного окружения:
node_modulesКлючевые особенности окружения Fresh:
npm installЭти отличия напрямую влияют на процесс разработки и делают настройку окружения более прозрачной и предсказуемой.