Модуль Nuxt
@macrulez/nuxt-vue-form-schema — модуль Nuxt для vue-form-schema, который автоимпортирует composables, адаптеры схем и (опционально) headless UI-компоненты. Никаких ручных import для публичного API библиотеки внутри вашего Nuxt-приложения не требуется.
Пока не опубликован в npm. Модуль живёт в
packages/nuxtв репозитории на GitHub и полностью собран/типизирован/протестирован, но ещё не опубликован под именем@macrulez/nuxt-vue-form-schema—npm installниже пока завершится ошибкой. До публикации соберите модуль из исходников сами (npm run build:nuxtв корне репозитория) либо используйте composables@macrulez/vue-form-schemaнапрямую с явными импортами.
Установка
npm install @macrulez/nuxt-vue-form-schema// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@macrulez/nuxt-vue-form-schema'],
})Это всё — useForm, useFieldArray, useMultiStepForm, parseZod/parseYup/parseValibot, встроенные валидаторы (required, minLength, ...) и хелперы композиции схем (mergeSchemas, pickFields, ...) теперь автоимпортируются везде, где вы их используете, так же как собственные composables Nuxt.
<script setup lang="ts">
const form = useForm({
schema: [{ type: 'text', name: 'email', required: true }],
onSubmit: async (values) => {
/* ... */
},
})
</script>Опции модуля
export default defineNuxtConfig({
modules: ['@macrulez/nuxt-vue-form-schema'],
vueFormSchema: {
autoImports: true,
components: false,
devtools: true,
},
})Блок vueFormSchema полностью типизирован — опция неправильной формы отлавливается TypeScript прямо в редакторе, а не только в рантайме.
autoImports
boolean · по умолчанию: true
Автоимпорт composables/валидаторов/адаптеров.
components
boolean · по умолчанию: false
Также зарегистрировать FormRenderer/MultiStepFormRenderer как глобальные компоненты с префиксом Vfs*, чтобы избежать конфликтов имён.
С components: true:
<template>
<VfsFormRenderer :form="form" submit-label="Save" />
</template>devtools
boolean · по умолчанию: true
Автоматически устанавливает панель Vue DevTools через runtime-плагин во время nuxt dev — ручной вызов installFormDevtools не требуется. Плагин работает только в dev-режиме и ничего не делает в продакшен-сборке. Установите false, если хотите подключать DevTools самостоятельно.
SSR
Nuxt-специфичное дополнение к общему разделу Совместимость с SSR: опциональные peer-зависимости (zod/yup/valibot) всё равно нужно установить в приложении, если вы используете соответствующий адаптер parse*, — модуль их не бандлит.
Разработка
npm install
npm run dev:prepare # генерирует типы .nuxt/, нужные playground'у
npm run dev # запускает приложение playground
npm run build # собирает модуль для публикацииЛицензия
MIT