Mithril — это лёгкий и быстрый JavaScript-фреймворк для создания одностраничных приложений (SPA). Он предоставляет минималистичный, но мощный API для работы с виртуальным DOM, компонентами и маршрутизацией. Для интеграции Mithril в проект наиболее удобным способом является использование современных менеджеров пакетов.
npm — стандартный менеджер пакетов для экосистемы Node.js, позволяющий легко управлять зависимостями проекта.
npm install mithril --save
--save добавляет Mithril в секцию
dependencies файла package.json, что
гарантирует установку фреймворка при развертывании проекта.import m from 'mithril';
const Hello = {
view: () => m("h1", "Hello, Mithril!")
};
m.mount(document.body, Hello);
const m = require('mithril');
Yarn является альтернативой npm, обеспечивающей более быструю и детерминированную установку зависимостей.
yarn add mithril
yarn.lock для точной фиксации
версий всех пакетов.pnpm обеспечивает экономное хранение пакетов за счёт дедупликации, что особенно важно для крупных проектов с множеством зависимостей.
pnpm add mithril
pnpm-lock.yaml для точной фиксации
версий.Хотя npm, Yarn и pnpm являются стандартом для современных проектов,
Mithril может быть подключён напрямую через
<script>:
<script src="https://unpkg.com/mithril/mithril.js"></script>
<script>
const Hello = {
view: () => m("h1", "Hello, Mithril!")
};
m.mount(document.body, Hello);
</script>
При установке через пакетный менеджер важно учитывать совместимость с проектом:
npm install mithril@2.1.0 --save
npm update mithril
npm list mithril
yarn upgrade mithril) и pnpm
(pnpm update mithril).После установки Mithril через npm/Yarn/pnpm можно интегрировать его в сборщики модулей, такие как Webpack, Rollup или Vite:
// Пример для Vite
import m from 'mithril';
const App = {
view: () => m("div", "Приложение на Mithril")
};
m.mount(document.getElementById('app'), App);
npm install --save-dev @types/mithril
import m, { Component } from 'mithril';
const Hello: Component = {
view: () => m("h1", "Hello, TypeScript!")
};
mithril
через node_modules.@rollup/plugin-node-resolve.tsconfig.json содержит
moduleResolution: "node" для корректного поиска
модулей.Эти подходы обеспечивают быстрый старт с Mithril и позволяют строить масштабируемые одностраничные приложения с минимальной конфигурацией.