Files
2021-08-05 15:50:10 +09:00
..
2021-08-05 15:50:10 +09:00

Next.js + Typescript Path Alias 설정하기

Issue

import ModuleName from '../../[path]' 와 같이 import 상대경로의 길이가 길어지는 문제를 해결하기 위함.

Path Alias 설정

// next.config.js
module.exports = {
  ....
  webpack: (config, options) => {
    config.resolve.alias = {
      ...config.resolve.alias,
      [설정하고 싶은 Path Alias]: [실제 경로 ex) (./components) ],
    }
    return config;
  }
}

next.config.js 에서 webpack의 설정을 커스텀할 수 있다. resolve.alias 속성을 수정함으로 path alias를 지정할 수 있음.

// .babelrc
{
  ...
  "plugins": [
    ...
    [
      "module-resolver",
      {
        "alias": {
          [설정하고 싶은 Path Alias]: [실제 경로 ex) './components' ],
        }
      }
    ]
  ]
}

webpack을 통한 번들링 중 Babel이 해당 경로를 이해할 수 있도록 설정 추가.

// tsconfig.json
{
  "compilerOptions": {
    ...
    "paths": {
      "@components/*": ["./components/*"],
    }
  },
  ...
}

Typescript => Javascript 트랜스파일링 과정에서 path를 온전히 변환할 수 있도록 설정.


3가지 파일이나 변경해줘야해서 조금 복잡하다...