Fresh — это современный фреймворк для разработки веб-приложений на базе Deno, который использует возможности ES-модулей, нативного TypeScript и рендеринга на сервере. Правильная конфигурация Deno является ключевым элементом для стабильной работы Fresh.
Для установки Deno используется официальный скрипт или пакетный менеджер системы. На Unix-подобных системах команда выглядит так:
curl -fsSL https://deno.land/install.sh | sh
На Windows предпочтительно использовать PowerShell:
iwr https://deno.land/install.ps1 -useb | iex
После установки необходимо проверить версию:
deno --version
Fresh требует Deno версии 1.34 и выше, так как использует последние возможности Deno Deploy и стандартной библиотеки.
deno.jsonДля управления проектом и зависимостями Deno использует файл
deno.json (или deno.jsonc). Этот файл
определяет настройки проекта, права доступа, алиасы для модулей и
скрипты запуска. Пример минимальной конфигурации для Fresh:
{
"compilerOptions": {
"lib": ["dom", "dom.iterable", "esnext"],
"strict": true,
"jsx": "react-jsx",
"jsxImportSource": "preact"
},
"tasks": {
"start": "deno run -A --watch main.ts",
"lint": "deno lint",
"fmt": "deno fmt"
},
"importMap": "import_map.json"
}
compilerOptions задают параметры TypeScript, включая
поддержку JSX через Preact, что является стандартом для Fresh.tasks позволяют запускать команды проекта через
deno task <имя>.importMap облегчает использование алиасов модулей.import_map.jsonДля удобного управления путями модулей используется import map. Пример для Fresh:
{
"imports": {
"$fresh/": "https://deno.land/x/fresh@1.7.0/",
"preact/": "https://esm.sh/preact@10.13.2/",
"preact/hooks": "https://esm.sh/preact@10.13.2/hooks"
}
}
Алиасы $fresh/ и preact/ позволяют
использовать чистые пути без длинных URL, повышая читаемость кода.
Fresh требует некоторых разрешений для работы, особенно при запуске сервера и доступе к файловой системе. Наиболее часто используемые флаги:
-A или --allow-all — полные разрешения
(для разработки).--allow-net — доступ к сети, нужен для загрузки модулей
и API-запросов.--allow-read — доступ к файловой системе, необходим для
шаблонов и статики.--allow-env — доступ к переменным окружения.Пример запуска проекта Fresh:
deno run -A --watch main.ts
Флаг --watch позволяет автоматически перезапускать
сервер при изменении файлов.
Fresh использует TypeScript и JSX через Preact. В
deno.json указаны соответствующие настройки. Важные
моменты:
jsx: значение react-jsx позволяет
компилировать JSX синтаксис без отдельного трансформера.jsxImportSource: значение preact
определяет библиотеку для JSX.strict: включает строгую проверку типов, предотвращая
ошибки на этапе компиляции.Эти настройки позволяют Fresh рендерить компоненты на сервере с полной поддержкой TypeScript.
Deno позволяет создавать пользовательские задачи в
deno.json. Для Fresh рекомендуется:
"tasks": {
"start": "deno run -A --watch main.ts",
"dev": "deno task start",
"lint": "deno lint",
"format": "deno fmt"
}
Такое разделение упрощает командную работу с проектом: команда
deno task dev запускает сервер с автообновлением, а
deno task lint проверяет код на ошибки.
Для VS Code и других IDE полезно установить расширения:
Файл .vscode/settings.json для интеграции с Deno:
{
"deno.enable": true,
"deno.lint": true,
"deno.unstable": true
}
deno.unstable необходим для использования
экспериментальных API, которые Fresh может использовать в новых
версиях.
.env файлов для переменных окружения
вместе с --allow-env.Эта структура позволяет легко масштабировать проект, добавлять новые страницы и компоненты, а также интегрировать Fresh с современными инструментами Deno.