Visual Studio Code является де-факто стандартом для разработки на JavaScript и TypeScript, а экосистема Fresh тесно связана с возможностями редактора. Установка выполняется стандартным способом для соответствующей операционной системы. После установки ключевым этапом становится корректная интеграция с Deno, так как Fresh полностью основан на нём.
Для работы необходим установленный Deno, доступный в системе через
PATH. VS Code автоматически обнаруживает Deno при наличии
расширения, но без него редактор будет воспринимать проект как обычный
JavaScript/TypeScript без специфики runtime.
Центральный элемент настройки — официальное расширение Deno от Deno Land Inc.
Основные возможности расширения:
deno task).После установки расширение не активируется глобально. Оно работает только в проектах, где явно включено использование Deno.
Проекты Fresh содержат файл deno.json или
deno.jsonc, что позволяет редактору распознать среду.
Однако VS Code по умолчанию может не активировать Deno
автоматически.
Рекомендуемая настройка — создание файла
.vscode/settings.json в корне проекта:
{
"deno.enable": true
}
После этого:
@types/node.Это критично для корректной работы Fresh, так как он не использует Node.js API.
Deno включает собственный форматтер, который предпочтительнее использовать вместо Prettier. Он учитывает особенности import maps, URL-импортов и стандартов Deno.
Рекомендуемые параметры форматирования:
{
"editor.defaultFormatter": "denoland.vscode-deno",
"editor.formatOnSave": true
}
Deno Formatter:
Использование сторонних форматтеров может приводить к конфликтам с синтаксисом Fresh и JSX/TSX.
Fresh использует TSX по умолчанию. Компоненты рендерятся на сервере, а острова (islands) — на клиенте. Для VS Code важно корректно интерпретировать JSX без React-импорта.
Deno расширение автоматически:
jsxImportSource из deno.json,
если он указан;При необходимости можно явно указать настройки:
{
"deno.unstable": true,
"typescript.preferences.jsxAttributeCompletionStyle": "auto"
}
После активации Deno:
Go to Definition) поддерживается
даже для удалённых модулей;Fresh-специфичные элементы, такие как Handlers,
PageProps, FreshContext, корректно
типизируются без дополнительных настроек.
Fresh активно использует import maps для коротких алиасов. VS Code
считывает их из deno.json.
Пример конфигурации:
{
"imports": {
"$fresh/": "https://deno.land/x/fresh@1.6.5/",
"preact": "https://esm.sh/preact@10.19.2"
}
}
Редактор:
Без включённого Deno такие импорты будут восприниматься как неразрешимые.
Deno включает встроенный линтер, который активируется автоматически при включённом расширении. Он:
Настройка может быть расширена в deno.json:
{
"lint": {
"rules": {
"tags": ["recommended"],
"exclude": ["no-explicit-any"]
}
}
}
VS Code отображает ошибки линтинга напрямую в редакторе, без дополнительных плагинов.
Интеграция с deno task позволяет запускать проект прямо
из редактора. В deno.json обычно присутствует задача:
{
"tasks": {
"start": "deno run -A --watch=static/,routes/ dev.ts"
}
}
VS Code распознаёт задачи автоматически. Они доступны через:
Это упрощает запуск сервера разработки Fresh без ручного ввода команд.
VS Code поддерживает отладку Deno-приложений, включая Fresh. Для этого используется конфигурация запуска:
{
"type": "pwa-node",
"request": "launch",
"name": "Debug Fresh",
"runtimeExecutable": "deno",
"runtimeArgs": [
"run",
"-A",
"--inspect",
"dev.ts"
]
}
Отладчик позволяет:
Для крупных проектов рекомендуется:
files.associations);Пример исключений:
{
"search.exclude": {
"**/.deno": true
}
}
Это повышает производительность редактора и снижает визуальный шум при навигации.
Корректно настроенный VS Code становится не просто редактором, а полноценной IDE для Fresh:
Такая конфигурация соответствует философии Fresh и Deno — минимализм, предсказуемость и встроенные возможности без избыточной сложности.