strivejs
v0.1.0-beta.1
Published
Фреймворк над Express для React + Vite с файловым роутингом и поддержкой SSR, SSG, ISR и CSR режимов
Downloads
109
Maintainers
Readme
Strive
Фреймворк над Express для React + Vite с файловым роутингом и поддержкой SSR, SSG, ISR и CSR режимов.
Установка
npm installРазработка
Запуск dev-сервера:
npm run devСервер будет доступен на http://localhost:3000
Структура проекта
src/
/client
client-entry.tsx # Точка входа для клиента (гидрация)
/pages
index.page.tsx # Главная страница (/)
test/[id].page.tsx # Динамический маршрут (/test/:id)
/server
strive.ts # Основная функция strive()
router.ts # Парсинг маршрутов
page-loader.ts # Загрузка страниц (dev/prod)
types.ts # Типы и defineStrivePage
ssr-entry.ts # Точка входа для SSR buildИспользование
Создание страницы
// src/pages/blog/[id].page.tsx
import { defineStrivePage } from '../../server/types';
export default defineStrivePage({
render: 'ssr',
getServerSideProps: async ({ params }) => {
return { props: { message: `Blog post ${params.id}` } };
},
component: ({ message }: { message: string }) => (
<div>
<h1>{message}</h1>
</div>
)
});Инициализация приложения
import { strive } from './server/strive';
const app = await strive({
baseIndexHtmlPath: './index.html',
staticDir: './static',
routing: {
page: {
dir: './src/pages',
filePattern: /\.page\.tsx$/,
},
},
mode: 'development'
});
app.listen(3000);Режимы рендеринга
- ssr - Server-Side Rendering (рендеринг на сервере при каждом запросе)
- csr - Client-Side Rendering (рендеринг на клиенте)
- ssg - Static Site Generation (предрендеринг на этапе сборки)
- isr - Incremental Static Regeneration (статическая генерация с пересборкой)
Статус разработки
✅ Этап 0 - Подготовка репо (зависимости, структура)
✅ Этап 1 - defineStrivePage + типы
✅ Этап 2 - Router (collectRoutes)
✅ Этап 3 - Page Loader (dev/prod)
✅ Этап 4 - Dev-mode (Vite middleware + SSR)
⏳ Этап 5 - Prod build (client + server)
⏳ Этап 6 - SSG / ISR
⏳ Этап 7 - Hydration / client-entry
⏳ Этап 8 - Доп. возможности и полировка
Лицензия
MIT
