Absolute Imports and Module Path Aliases
Examples
Next.js, tsconfig.json
ve jsconfig.json
dosyalarının "paths"
ve "baseUrl"
seçenekleri için yerleşik desteğe sahiptir.
Bu seçenekler, proje dizinlerini mutlak yollara takma ad olarak eklemenize olanak tanıyarak modülleri içe aktarmayı kolaylaştırır. Örneğin:
// before
import { Button } from '../../../components/button'
// after
import { Button } from '@/components/button'
Bilmenizde fayda var:
create-next-app
bu seçenekleri sizin için yapılandırmanızı isteyecektir.
Absolute Imports
baseUrl
yapılandırma seçeneği, doğrudan projenin kökünden içe aktarmanıza olanak tanır.
Bu yapılandırmaya bir örnek:
tsconfig.json or jsconfig.json
{
"compilerOptions": {
"baseUrl": "."
}
}
components/button.tsx
export default function Button() {
return <button>Click me</button>
}
app/page.tsx
import Button from 'components/button'
export default function HomePage() {
return (
<>
<h1>Hello World</h1>
<Button />
</>
)
}
Module Aliases
baseUrl
yolunu yapılandırmanın yanı sıra, modül yollarını "takma ad" olarak kullanmak için "paths"
seçeneğini de kullanabilirsiniz.
Örneğin, aşağıdaki yapılandırma @/components/*
adresini components/*
adresiyle eşler:
tsconfig.json or jsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/components/*": ["components/*"]
}
}
}
components/button.tsx
export default function Button() {
return <button>Click me</button>
}
app/page.tsx
import Button from '@/components/button'
export default function HomePage() {
return (
<>
<h1>Hello World</h1>
<Button />
</>
)
}
"paths"
adresinin her biri baseUrl
konumuna göredir. Örneğin:
// tsconfig.json or 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>
)
}