사용자 지정 가져오기 경로 및 도움이 되는 방법
많은 파일이 있는 응용 프로그램을 개발할 때 귀찮은 문제가 있다면 해당 파일이 다른 파일을 가져올 때 해당 파일의 가져오기에서 초과
../
가 발생합니다.응용 프로그램이 커짐에 따라 프로젝트 파일의 폴더가 다른 폴더 안에 점점 더 많이 중첩되는 것을 보는 것이 일반적이며, 예상하지 못한 경우 다음 가져오기 예제를 보게 됩니다.
import ExampleComponent from '../../../../../../src/components/ExampleComponent/'
위의 예는 실제이며 우리가 생각하는 것보다 훨씬 더 일반적입니다. 안타깝게도 이들
../
을 과도하게 사용하면 코드를 유지 관리해야 할 때 약간의 문제가 발생합니다. 그 중에서도 가져온 파일 또는 가져오기 파일의 위치를 변경해야 할 때마다 상대 경로를 수정하는 재작업이 필요합니다.이 가져오기를 보다 우아하고 체계적으로 만드는 가장 간단한 방법 중 하나는 사용자 지정 경로를 만들고 절대 경로로 두는 것입니다. 따라서 위의 예는 다음과 같을 수 있습니다.
import ExampleComponent from '~/components/ExampleComponent/'
위의 예에서
~
접두사는 프로젝트의 디렉터리에 대한 절대 경로로 설정되었으며, 이 경우 디렉터리는 src
폴더입니다. 이렇게 하면 파일이 있는 폴더에 관계없이 ~/
접두사를 사용할 때 항상 src
폴더의 절대 경로를 가져옵니다.정말 좋죠?!
실현하기
종속성 설치
먼저 이 마법이 작동하려면 세 가지 종속성을 설치하고 구성해야 합니다. 그리고 그들은:
react-app-rewired 및 customize-cra
우리 프로젝트의 루트에서 아래 명령을 실행하여 이젝트를 사용할 필요 없이 react-scripts 포크를 생성할 필요 없이 webpack 설정을 사용자 지정해 보겠습니다.
yarn add -D react-app-rewired customize-cra
바벨-플러그인-루트-가져오기
이제 아래 명령을 실행하여 사용자 지정 경로를 사용하여 파일을 가져오겠습니다.
yarn add -D babel-plugin-root-import
config-overrides.js 만들기
또한 프로젝트의 루트에
config-overrides.js
라는 파일을 생성합니다. 그는 우리 프로젝트의 루트 폴더 설정을 담당할 것입니다.이 코드를 파일에 삽입해 보겠습니다.
const { addBabelPlugin, override } = require('customize-cra')
module.exports = override(
addBabelPlugin([
'babel-plugin-root-import',
{
rootPathSuffix: 'src',
},
])
)
개발자 편집자의 삶을 더 쉽게 만들기
여전히 프로젝트의 루트에
jsconfig.json
라는 파일을 생성합니다. 그는 VSCODE가 사용자 지정 경로를 이해하도록 만드는 일을 담당합니다.이 코드를 파일에 삽입해 보겠습니다.
{
"compilerOptions": {
"baseUrl": "src",
"paths": {
"~/*": ["*"]
}
}
}
마지막 세부정보
마지막으로 package.json 파일의 스크립트를 업데이트합니다. 다음과 같이 두십시오.
{
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
}
}
보시다시피
react-scripts
스크립트를 제외하고 모두 react-app-rewired
를 eject
로 바꿉니다.준비 완료!
이제 가져올 때
~/
를 사용하여 src 폴더 내의 모든 파일을 사용할 수 있습니다.import ExampleComponent from '~/components/ExampleComponent/'
그리고...
이 예제를 실제로 보고 싶다면 여기에서 내가 React 프로젝트용으로 만든 템플릿을 살펴볼 수 있습니다.
디에고실바테크 / 상용구-cra-typescript
이 프로젝트는 React 프로젝트의 상용구입니다. 이 템플릿은 ReactJS 및 TypeScript로 제작되었습니다.
가져오기에서 이 접근 방식에 대해 어떻게 생각하는지 댓글로 남겨주세요 :)
Reference
이 문제에 관하여(사용자 지정 가져오기 경로 및 도움이 되는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/diegosilvatech/custom-import-paths-and-how-it-can-help-you-a1h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)