feat(01-01): initialize Nuxt 4 project with all modules

- nuxt.config.ts with compatibilityVersion 4, SSR, 6 modules
- app/app.vue and app/pages/index.vue minimal setup
- pnpm as package manager with all dependencies installed
- TypeScript strict mode enabled
- .gitignore updated for Nuxt (.nuxt, .output, .env)
- tsconfig.json extends .nuxt/tsconfig.json
This commit is contained in:
2026-04-08 14:51:52 +02:00
parent b075fb81c4
commit 9fbbce07e0
7 changed files with 11208 additions and 42 deletions
+5
View File
@@ -29,3 +29,8 @@ coverage
*.tsbuildinfo *.tsbuildinfo
.claude .claude
# Nuxt
.nuxt
.output
.env
+6
View File
@@ -0,0 +1,6 @@
<template>
<div>
<NuxtRouteAnnouncer />
<NuxtPage />
</div>
</template>
+6
View File
@@ -0,0 +1,6 @@
<template>
<div>
<h1>Portfolio Killian Dalcin</h1>
<p>Nuxt 4 Foundation</p>
</div>
</template>
+25
View File
@@ -0,0 +1,25 @@
export default defineNuxtConfig({
future: {
compatibilityVersion: 4
},
ssr: true,
modules: [
'@nuxt/ui',
'@nuxtjs/i18n',
'@nuxt/eslint',
'@nuxtjs/sitemap',
'nuxt-gtag',
'@nuxt/image'
],
typescript: {
strict: true
},
i18n: {
locales: ['fr', 'en'],
defaultLocale: 'fr'
},
gtag: {
id: 'G-CDVVNFY6MV',
enabled: false
}
})
+26 -32
View File
@@ -4,41 +4,35 @@
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "nuxt dev",
"build": "run-p type-check \"build-only {@}\" --", "build": "nuxt build",
"preview": "vite preview", "generate": "nuxt generate",
"build-only": "vite build", "preview": "nuxt preview",
"type-check": "vue-tsc --build", "postinstall": "nuxt prepare",
"lint": "eslint . --fix", "lint": "eslint .",
"format": "prettier --write src/" "typecheck": "nuxt typecheck"
}, },
"dependencies": { "dependencies": {
"@vueuse/head": "^2.0.0", "@nuxt/eslint": "^1.15.2",
"pinia": "^3.0.1", "@nuxt/image": "^2.0.0",
"vue": "^3.5.13", "@nuxt/ui": "^3.0.0",
"vue-i18n": "^9.14.4", "@nuxtjs/i18n": "^10.2.4",
"vue-router": "^4.5.0" "@nuxtjs/sitemap": "^8.0.12",
"nuxt": "^4.0.0",
"nuxt-gtag": "^4.1.0",
"vue": "latest",
"vue-router": "latest"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/postcss": "^4.1.10", "typescript": "~5.8.0"
"@tsconfig/node22": "^22.0.1", },
"@types/node": "^22.14.0", "pnpm": {
"@vitejs/plugin-vue": "^5.2.3", "onlyBuiltDependencies": [
"@vue/eslint-config-prettier": "^10.2.0", "@parcel/watcher",
"@vue/eslint-config-typescript": "^14.5.0", "esbuild",
"@vue/tsconfig": "^0.7.0", "sharp",
"autoprefixer": "^10.4.21", "unrs-resolver",
"eslint": "^9.22.0", "vue-demi"
"eslint-plugin-vue": "~10.0.0", ]
"jiti": "^2.4.2",
"npm-run-all2": "^7.0.2",
"postcss": "^8.5.6",
"prettier": "3.5.3",
"tailwindcss": "^4.1.10",
"terser": "^5.43.1",
"typescript": "~5.8.0",
"vite": "^6.2.4",
"vite-plugin-vue-devtools": "^7.7.2",
"vue-tsc": "^2.2.8"
} }
} }
+11138
View File
File diff suppressed because it is too large Load Diff
+1 -9
View File
@@ -1,11 +1,3 @@
{ {
"files": [], "extends": "./.nuxt/tsconfig.json"
"references": [
{
"path": "./tsconfig.node.json"
},
{
"path": "./tsconfig.app.json"
}
]
} }