Haunted — это современная библиотека для создания веб-компонентов на основе стандартов Web Components и Hooks, вдохновлённая React-подходом. Для полноценной работы необходимо правильно подготовить окружение, чтобы обеспечить поддержку модульной структуры и современных возможностей JavaScript.
Haunted распространяется через npm и поддерживает ES-модули. Основные шаги установки:
npm install haunted
После установки можно импортировать функции в проект:
import { html, component, useState, useEffect } from 'haunted';
Важный момент: Haunted ориентирован на работу с браузерами, поддерживающими ES-модули и Custom Elements. Для старых браузеров потребуется полифилл.
Для подключения через <script> можно использовать
CDN:
<script type="module">
import { html, component, useState } from 'https://unpkg.com/haunted?module';
</script>
Рекомендуется организовать проект с разделением компонентов и логики:
/src
/components
my-component.js
index.js
index.html
package.json
Для удобной разработки и поддержки современных возможностей JavaScript используется сборщик модулей, например, Vite или Webpack. Пример настройки Vite:
npm create vite@latest my-haunted-app
cd my-haunted-app
npm install
type="module" указан в скриптах.src/components.Vite автоматически поддерживает ES-модули и полифиллы для старых браузеров, что упрощает настройку Haunted.
Пример конфигурации .eslintrc.json для Haunted:
{
"env": {
"browser": true,
"es2021": true
},
"extends": ["eslint:recommended"],
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"rules": {
"no-unused-vars": "warn",
"semi": ["error", "always"]
}
}
Vite обеспечивает быструю перезагрузку компонентов при изменениях кода. Для Haunted это особенно важно, так как компоненты автоматически рендерятся при изменении состояния.
Пример подключения компонента с поддержкой HMR:
import { component, html } from 'haunted';
import './components/my-component.js';
if (import.meta.hot) {
import.meta.hot.accept();
}
Для полной совместимости с браузерами необходимо подключение:
Подключение через npm:
npm install @webcomponents/webcomponentsjs core-js
Подключение через HTML:
<script src="node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script>
Правильная настройка окружения обеспечивает стабильную и эффективную работу с Haunted, минимизирует ошибки рендеринга и упрощает дальнейшую разработку сложных веб-компонентов.