Next.js(React)では、デフォルトだとコンポーネントなどを相対パスでimportするようになっています。
本記事では、Next.jsにて絶対パスでimportする方法を解説しています。
jsconfig.json(tsconfig.json)で設定する
Next.jsのjsconfig.json
に下記の設定を追加します。(※TypeScriptの場合はtsconfig.json
です。)
{
"compilerOptions": {
"baseUrl": "."
},
}
baseUrl
にオプションを設定することで、絶対パスでimportすることができます。
// import Layout from '../components/layout/Layout'
import Layout from 'components/layout/Layout' // 絶対パスで指定
const Home = () => {
return (
<>
<Layout />
</>
)
}
export default Home
Visual Studio Code(VSCode)にて自動で絶対パスをimportする
VSCodeではコンポーネントなどを記述する際に自動でimportしてくれる機能があります。
自動importを絶対パスにするには、VSCodeの設定を変更します。
設定を開いて下記の画像のようにJavaScript › Preferences: Import Module Specifier
をnon-relative
に設定します。
上記の設定をすることでbaseUrl
に基づいてimportをしてくれるようになります。
ちなみにVSCodeではjsonファイルで設定を管理することもできます。
.vscode
ディレクトリのsettings.json
ファイルで管理します。
{
"javascript.preferences.importModuleSpecifier": "non-relative"
}
最後に
本記事ではNext.jsにて絶対パスでimportする方法を解説してきました。
プロジェクトが大きくなり、ディレクトリの階層が深くなる場合などは絶対パスの方が便利かなと思います。