NODE_PATH=src
"scripts": {
"start": "cross-env NODE_PATH=src react-scripts start",
"build": "cross-env NODE_PATH=src react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
}
Setting NODE_PATH to resolve modules absolutely has been deprecated in favor of setting baseUrl in jsconfig.json (or tsconfig.json if you are using TypeScript) and will be removed in a future major release of create-react-app
{
"compilerOptions": {
"baseUrl": "src"
},
"include": ["src"]
}
npm eject 하지 않고 웹팩 모듈 설정이 가능한 라이브러리
yarn add @craco/craco
yarn add craco-alias -D
"scripts": {
"start": "craco start",
"build": "craco build",
"test": "craco test",
"eject": "react-scripts eject"
},
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@components/*": ["src/components/*"]
}
}
}
{
"extends": "./jsconfig.paths.json",
...
}
const CracoAlias = require('craco-alias');
module.exports = {
plugins: [
{
plugin: CracoAlias,
options: {
source: 'tsconfig',
// as you know, CRA doesn't allow to modify tsconfig's compilerOptions
// so you should create a separate JSON file and extend tsconfig.json from it
// and then just specify its path here:
tsConfigPath: 'tsconfig.paths.json',
},
},
],
};
간단하게 루트 경로만 수정하는 작업이라 jsconfig.json 파일 방법만 사용했지만 나중에 설정 파일을 수정하는 일이 생기면 craco를 써봐야겠다...!
참고 사이트
https://www.npmjs.com/package/@craco/craco
https://velog.io/@huhu/CRA%EC%97%90%EC%84%9C-%EC%A0%88%EB%8C%80%EA%B2%BD%EB%A1%9C%EB%A1%9C-import%ED%95%98%EA%B8%B0