TypeScript 프로젝트에서 Alias 설정 방법 - prgrms-web-devcourse/Team_Alchomist_ShakeNMatch_FE GitHub Wiki
추가적인 경로 설정
// tsconfig.json
{
"extends": "./tsconfig.path.json",
...
}
// tsconfig.path.json
{
"compilerOptions": {
"baseUrl": ".",
"paths": { // Alias 경로 별칭 및 실제 경로
"@base/*": [
"src/components/base/*" ]
}
}
}
craco를 사용하지 않을경우, module-alias 패키지를 이용하여 추가적인 세팅이 필요하다.
Craco를 사용할경우, craco-alias 사용하기
// craco.config.js
export default {
...
plugins: [
{
plugin: CracoAlias,
options: {
source: 'tsconfig',
baseUrl: './src',
tsConfigPath: './tsconfig.path.json'
}
}
],
...
}
storybook은 추가적으로 alias 설정이 필요하다. 아래와 같이 설정해주면 된다.
StoryBook Alias 설정 방법
// main.js
export default {
"webpackFinal": async (config) => {
config.resolve.alias["@base"] = path.resolve(__dirname, "../src/components/base");
config.resolve.alias["@components"] = path.resolve(__dirname, "../src/components");
config.resolve.alias["@hooks"] = path.resolve(__dirname, "../src/hooks");
config.resolve.alias["@utils"] = path.resolve(__dirname, "../src/utils");
config.resolve.alias["@"] = path.resolve(__dirname, "../src");
return config;
},
"typescript": {
check: false,
checkOptions: {},
reactDocgen: 'react-docgen-typescript',
reactDocgenTypescriptOptions: {
shouldExtractLiteralValuesFromEnum: true,
propFilter: (prop) => (prop.parent ? !/node_modules/.test(prop.parent.fileName) : true),
},
},
...
}