Open JaeYeopHan opened 5 years ago
๋ชจ๋ ์ง๋ขฐ๋ฅผ ๋ค ์ฐพ์ ์ค ์์๋๋ฐ ๋ ๋ฐ์๋ฒ๋ ธ๋ค.
์๋กญ๊ฒ ํ์ผ์ ์์ฑํ๊ณ ๋์ ์ฌ๋ฌ module์ importํ๋๋ฐ ๋ถ๋ช ์คํ๋ ์๋๋ฐ ์ ๋ ๊ฒฝ๋ก๋ก import๊ฐ ๋์ง ์๋๋ค.
์ด๋ค ํ์ผ์์๋ import ํ์ง ์์ A.ts
(or A.tsx
)์์ absolute path ๋ก importํ๋ฉด ์์ ๊ฐ์ ์๋ฌ๋ฉ์ธ์ง๊ฐ ๋
ธ์ถ๋๋ค. (Cannot find module '...')
์ฆ ์ด๋ค ํน์ ํ์ผ์์ import A from '.@/โฆ/A'
๋ฅผ ํด์ฃผ๋ฉด A ํ์ผ์์ ์ ๋ ๊ฒฝ๋ก๋ก import๊ฐ ๊ฐ๋ฅํด์ง๋ค.
์ด๋ค ํ์ผ์์๋ import ํ์ง ์์
์ด ๋ฌด์์ ์๋ฏธํ๋ ๊ฒ์ผ๊น
์ฌ์ฝ๋, ํน์ ์คํ ๋ฆฌ๋ถ ์ ๋๊ฒฝ๋ก ์ค์ ๊น์ง ์ถ๊ฐํ๋ฉด ์ข์ง ์์๊น์? ์๊ฒฌ ํ๋ฒ ๋ด๋ด ๋๋ค :)
.storybook/main.js
const path = require('path');
module.exports = {
stories: ['../src/**/*.stories.tsx'],
addons: [
'@storybook/preset-create-react-app',
'@storybook/addon-actions',
'@storybook/addon-links',
],
webpackFinal: (config) => {
config.resolve.modules = [
...(config.resolve.modules || []),
path.resolve(__dirname, '../'),
];
config.resolve.alias = {
...(config.resolve.alias || {}),
'@': 'src'
};
return config;
}
};
Description
Configure Absolute path!!๐
โ Based "react-scripts": "3.0.1"
Env
Configuration
craco.config.js
tsconfig.paths.json
tsconfig.json
Mine ๐ฃ
1. moduleNameMapper
CRA๋ก ๊ฐ๋ฐ ํ๊ฒฝ์ผ๋ก ์ธํ ์ ํ ๊ฒฝ์ฐ, jest config๋ฅผ package.json์์ override ํ ๋
moduleNameMapper
์์ฑ์ override ํ ์ ์๋ค. override ํ๋ ค๋ฉด eject๋ฅผ ํ๋ผ๊ณ ํ๋ค. ์ ๋๋ฌธ์ ์ด ์ค์ํ ์์ฑ์ ๋ง์๋์๋์ง ์ดํด๊ฐ ๋์ง ์๋ ๋ถ๋ถ. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ craco ์ ๊ฐ์ cra override tool์ด ํ์.2. With Jest
test directory์ ๋ํ ๋ถ๋ถ์ ์ถ๊ฐ์ ์ผ๋ก ๋ช ์ํด์ผ ํ๋ค๋ ์ ์์ ๊ธด ์๊ฐ ์ฝ์ง์ ํ๋ค. ํ ์คํธ ๋๋ ํ ๋ฆฌ๊ฐ ๋ค๋ฅด๋ค๋ฉด
include
์ ์ถ๊ฐํด์ค์ผ ํ๋ค.3. Customize tsconfig.json
tsconfig.json ์์ path ๊ด๋ จํ ์์ฑ์ ๋ฐ๋ก ์์ฑ์ ํ๋ฉด cra๊ฐ ์์ ๋ฒ๋ฆฌ๊ณ tscofnig.json์ ๋ค์ ์์ฑํ๋ค. ์ด ๋ถ๋ถ๋ ์ด๋ค ์คํฌ๋ฆฝํธ์์ ์ฒ๋ฆฌํ๋์ง ์ ํํ ํ์ ํ์ง๋ ๋ชปํ์ง๋ง ์ด๋ฅผ ์ฐํํ๋ ๋ฐฉ๋ฒ์ ์กด์ฌํ๋ค. ๋ณ๋ ํ์ผ๋ก ์ ์ ํ,
extends
๋ฅผ ํด์ค์ผ ํ๋ค.4. import index
@api
์ ๊ฐ์ด directory๋ฅผ direct๋ก alias ์ง์ ํ ๊ฒฝ์ฐ index๋ฅผ ๋ช ์์ ์ผ๋ก import ํด์ค์ผ ํ๋ค. (์ด ๋ถ๋ถ์ ๊ฒํ ๊ฐ ๋ ํ์ํ์ง๋ง directory๋ก ์ธ์ํ์ฌ index๋ฅผ ์๋ฌต์ ์ผ๋ก importํ ์ ์๋ ๊ฒ์ผ๋ก ์์๋๋ค.)Tips