When you build a custom app, the Laioutr platform already installs several Nuxt modules into the project. If your app needs one of these modules, you can use it directly without adding it as a dependency. If your app depends on a specific version range, check the table below to confirm compatibility.
The platform runs on Nuxt 3.16.2.
installModule('@nuxt/image') while frontend-core already registered @nuxt/[email protected], Nuxt silently skips the second registration. But if your app's node_modules resolves a different major version (e.g. @nuxt/[email protected]), the version that loads first wins and every other app in the project gets that version instead of the one it expects. The @nuxt/image 2.x API is not backwards-compatible with 1.x, so other Laioutr apps will break at runtime.Do not install your own version of any module listed below. If you need a feature from a newer release, coordinate with the platform team first.These modules are installed by @laioutr-core/frontend-core, which is present in every Laioutr project:
| Module | Version |
|---|---|
@nuxt/image | 1.9.0 |
@nuxtjs/i18n | 9.5.2 |
@nuxtjs/robots | ^5.4.0 |
@vueuse/nuxt | 13.1.0 |
@pinia/nuxt | 0.11.0 |
@pinia/colada-nuxt | 0.2.1 |
Projects that use the Laioutr UI kit (most projects) get these additional modules through @laioutr-core/ui-kit and @laioutr-core/ui:
| Module | Version |
|---|---|
@nuxt/fonts | 0.10.3 |
@nuxt/icon | 1.13.0 |
@nuxtjs/color-mode | 3.5.2 |
@unocss/nuxt | 66.2.3 |
nuxt-swiper | 1.2.2 (pinned to 1.x intentionally) |
The Nuxt modules above pull in these libraries, so they are available at runtime in every Laioutr project:
| Package | Version |
|---|---|
pinia | 3.0.2 |
@pinia/colada | 0.17.1 |
@vueuse/core | 13.1.0 |
zod | 3.25.61 |
If your app imports one of these directly, you still need to declare it in your own package.json so TypeScript can resolve the types. Add it as a dependency (like the App Starter does with zod) or as a devDependency if you only use it in the playground.
package.jsonThe App Starter shows the recommended pattern for declaring dependencies:
peerDependencies for core platform packages your app runs against. These are resolved from the project that installs your app:
{
"peerDependencies": {
"@laioutr-core/canonical-types": ">=0.22.13",
"@laioutr-core/core-types": ">=0.28.8",
"@laioutr-core/frontend-core": ">=0.28.8"
}
}
dependencies for packages your app bundles itself (build tools, schema libraries):
{
"dependencies": {
"@nuxt/kit": "3.16.2",
"zod": "3.25.61"
}
}
devDependencies for Nuxt modules and libraries that your playground needs but the platform already provides in real projects. Without these, pnpm may not hoist the packages correctly for local development:
{
"devDependencies": {
"nuxt": "3.16.2",
"@pinia/colada": "0.17.1",
"@pinia/colada-nuxt": "0.2.1",
"@vueuse/core": "13.1.0",
"pinia": "3.0.2"
}
}