Fresh — фреймворк для разработки веб-приложений, изначально спроектированный под экосистему Deno. Использование других сред выполнения JavaScript (Node.js, Bun) не предусмотрено и не поддерживается.
Минимальные требования:
Deno версии не ниже 1.31
Рекомендуется использовать актуальную стабильную версию, так как Fresh
активно использует новые возможности платформы.
Поддерживаемые операционные системы:
Fresh не требует предварительной установки Node.js, npm или yarn.
Fresh тесно интегрирован с ключевыми особенностями Deno:
Это устраняет необходимость в:
package.jsonnode_modulesFresh следует принципу минимализма и использует крайне ограниченное число внешних библиотек.
Preact
Deno standard library
esbuild (через Deno) Применяется для:
Все зависимости импортируются напрямую по URL, например:
import { serve } from "https://deno.land/std/http/server.ts";
Fresh не использует npm-совместимые менеджеры пакетов. Управление зависимостями осуществляется через:
Пример import_map.json:
{
"imports": {
"preact": "https://esm.sh/preact@10.19.2",
"preact/hooks": "https://esm.sh/preact@10.19.2/hooks"
}
}
Преимущества подхода:
Fresh не требует отдельной установки вспомогательных утилит. Всё необходимое уже включено в Deno:
deno testdeno lintdeno fmtОтсутствует необходимость в:
Deno применяет модель безопасности на основе явных разрешений. Для работы Fresh обычно требуются:
--allow-net — обработка HTTP-запросов--allow-read — чтение файлов маршрутов и
компонентов--allow-env — доступ к переменным окружения
(опционально)Пример запуска dev-сервера:
deno run -A dev.ts
Флаг -A используется в режиме разработки для упрощения
работы, но в production рекомендуется ограничивать разрешения.
TypeScript является обязательной частью стека Fresh:
.tsxДополнительные пакеты @types/* не используются, так как
типы предоставляются самими библиотеками через ESM-экспорт.
Fresh применяет island-подход, при котором JavaScript отправляется в браузер только для интерактивных компонентов.
Следствия для зависимостей:
Это снижает:
Поддерживаются только библиотеки, которые:
fs, path,
process)Для адаптации npm-пакетов используется сервис esm.sh,
автоматически:
Fresh не накладывает требований на IDE, сборочные системы или CI-инфраструктуру, так как полностью опирается на стандартные средства Deno.