Absolute Imports und Modulpfad-Aliase
Beispiele
Next.js bietet integrierte Unterstützung für die "paths"
- und "baseUrl"
-Optionen von tsconfig.json
- und jsconfig.json
-Dateien.
Diese Optionen ermöglichen es Ihnen, Projektverzeichnisse auf absolute Pfade zu aliassen, was den Import von Modulen erleichtert. Zum Beispiel:
// vorher
import { Button } from '../../../components/button'
// nachher
import { Button } from '@/components/button'
Gut zu wissen:
create-next-app
wird Sie auffordern, diese Optionen zu konfigurieren.
Absolute Imports
Die baseUrl
-Konfigurationsoption ermöglicht es Ihnen, direkt aus dem Stammverzeichnis des Projekts zu importieren.
Ein Beispiel für diese Konfiguration:
{
"compilerOptions": {
"baseUrl": "."
}
}
import Button from 'components/button'
export default function HomePage() {
return (
<>
<h1>Hello World</h1>
<Button />
</>
)
}
import Button from 'components/button'
export default function HomePage() {
return (
<>
<h1>Hello World</h1>
<Button />
</>
)
}
Modul-Aliase
Zusätzlich zur Konfiguration des baseUrl
-Pfads können Sie die "paths"
-Option verwenden, um Modul-Pfade zu "aliasen".
Beispielsweise bildet die folgende Konfiguration @/components/*
auf components/*
ab:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/components/*": ["components/*"]
}
}
}
import Button from '@/components/button'
export default function HomePage() {
return (
<>
<h1>Hello World</h1>
<Button />
</>
)
}
import Button from '@/components/button'
export default function HomePage() {
return (
<>
<h1>Hello World</h1>
<Button />
</>
)
}
Jeder der "paths"
ist relativ zum baseUrl
-Standort. Beispiel:
// tsconfig.json oder jsconfig.json
{
"compilerOptions": {
"baseUrl": "src/",
"paths": {
"@/styles/*": ["styles/*"],
"@/components/*": ["components/*"]
}
}
}
// pages/index.js
import Button from '@/components/button'
import '@/styles/styles.css'
import Helper from 'utils/helper'
export default function HomePage() {
return (
<Helper>
<h1>Hello World</h1>
<Button />
</Helper>
)
}