본문 바로가기

Front-End: Web

절대 경로 설정하기 (craco + typescript + storybook)

반응형

craco + typescript

1. craco 설치

yarn add @craco/craco
yarn add craco-alias -D

 

2. craco.config.js 세팅

const CracoAlias = require("craco-alias");

module.exports = {
  plugins: [
    {
      plugin: CracoAlias,
      options: {
        source: "tsconfig",
        tsConfigPath: "tsconfig.paths.json",
      },
    },
  ],
};

 

3. tsconfig.json 세팅

{ 
  ...,
  "extends": "./tsconfig.paths.json"
}

 

4. tsconfig.paths.json 세팅

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@api/*": ["src/api/*"],
      "@components/*": ["src/components/*"],
      "@configs/*": ["src/configs/*"],
      "@fonts/*": ["src/fonts/*"],
      "@hooks/*": ["src/hooks/*"],
      "@pages/*": ["src/pages/*"],
      "@store/*": ["src/store/*"],
      "@styles/*": ["src/styles/*"],
      "@utils/*": ["src/utils/*"]
    }
  }
}

 

 

스토리북 절대 경로

프로젝트에 절대 경로를 설정하고 나니 스토리북에서 에러가 발생했다. 찾아보니 스토리북도 따로 절대 경로를 설정해야 한다고 한다. (참고 자료)

먼저 tsconfig.json에서 해당 코드를 추가하여 path 설정을 하였다.

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@api/*": ["src/api/*"],
      "@components/*": ["src/components/*"],
      "@configs/*": ["src/configs/*"],
      "@fonts/*": ["src/fonts/*"],
      "@hooks/*": ["src/hooks/*"],
      "@pages/*": ["src/pages/*"],
      "@store/*": ["src/store/*"],
      "@styles/*": ["src/styles/*"],
      "@utils/*": ["src/utils/*"]
    },
}

그리고 tsconfig-paths-webpack-plugin 을 설치한다.

yarn add -D tsconfig-paths-webpack-plugin

마지막으로 .storybook/main.js 에서 TsconfigPathsPlugin 설정을 추가한다.

const TsconfigPathsPlugin  = require('tsconfig-paths-webpack-plugin')
module.exports = {
  webpackFinal: async (config) => {
    config.resolve.plugins.push(new TsconfigPathsPlugin({}));
    return config;
  },
};
반응형

'Front-End: Web' 카테고리의 다른 글

[React-Query] createJSONStorage  (0) 2023.07.30
React Query: Optimistic Updates  (0) 2023.07.22
스토리북에 폰트 적용하기  (0) 2023.07.22
axios interceptors  (0) 2023.07.22
[CSS] Grid Garden - grid 속성을 배워보자  (0) 2022.11.15