Hyperapp — минималистичный фронтенд-фреймворк на JavaScript, основанный на концепциях функционального программирования и управления состоянием через чистые функции. Для эффективной работы с ним требуется корректная настройка среды разработки.
Первым шагом является установка Node.js. Hyperapp не требует серверной части, но для управления зависимостями, сборки и локального сервера Node.js необходим. Рекомендуется использовать последнюю LTS-версию.
После установки Node.js автоматически становится доступен менеджер пакетов npm. Альтернативой является Yarn, который может ускорить установку и управление пакетами. Проверка доступности инструментов выполняется командами:
node -v
npm -v
yarn -v
Для структурирования проекта удобно использовать стандартную файловую архитектуру:
project/
│─ index.html
│─ src/
│ ├─ app.js
│ └─ components/
│─ package.json
Файл index.html содержит контейнер для рендеринга
приложения и подключение скрипта.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Hyperapp Project</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="src/app.js"></script>
</body>
</html>
Hyperapp можно подключить через npm или напрямую через CDN. Для npm:
npm install hyperapp
Импорт в модуле ES6 выглядит так:
import { h, app } from "hyperapp";
Для подключения через CDN достаточно добавить в
index.html:
<script type="module">
import { h, app } from "https://unpkg.com/hyperapp?module";
</script>
Для современных проектов рекомендуется использовать сборщики вроде Vite, Webpack или Parcel. Наиболее легковесным и быстрым является Vite.
Установка Vite и создание проекта:
npm create vite@latest my-hyperapp-project -- --template vanilla
cd my-hyperapp-project
npm install
Структура проекта будет готова к работе, а npm run dev
запустит локальный сервер с горячей перезагрузкой.
Для комфортной работы необходим редактор с поддержкой JavaScript/ES6 и возможностей подсветки синтаксиса и автодополнения. Visual Studio Code является стандартом. Рекомендуемые расширения:
Настройка jsconfig.json позволяет VS Code корректно
обрабатывать модули:
{
"compilerOptions": {
"target": "ES6",
"module": "ES6",
"moduleResolution": "node"
},
"exclude": ["node_modules"]
}
В src/app.js создаётся корневое состояние, действия и
представление:
const state = {
count: 0
};
const actions = {
increment: () => state => ({ count: state.count + 1 }),
decrement: () => state => ({ count: state.count - 1 })
};
const view = (state, actions) => (
h("div", {}, [
h("h1", {}, state.count),
h("button", { onclick: actions.increment }, "+"),
h("button", { onclick: actions.decrement }, "-")
])
);
app({ init: state, view, actions, root: document.getElementById("app") });
Для отслеживания ошибок и поддержания качества кода рекомендуется:
eslint:recommendedПроект готов к разработке с разделением на компоненты, централизованным состоянием и управлением действиями. Грамотная настройка среды ускоряет разработку и снижает количество ошибок при работе с Hyperapp.