코드에서 상대경로 처리로 지저분해지는 걸 막기 위해 보통은 webpack resolve.alias나 babel의 babel-plugin-webpack-alias, babel-plugin-module-resolver등 다양한 플러그인들을 사용합니다.
저희 팀에서는 webpack의 resolve 옵션을 사용해보았는데요,
/* webpack.config.js */
entry: './client/index.js'
resolve: {
alias: {
"Components": path.resolve(__dirname, 'client/components'),
"@": path.resolve(__dirname, 'client'),
},
},
원래는 ../../Components/component
처럼 상대경로로 표현하면 헷갈리는 부분들을 위와 같이 변경할 수 있는데, 이렇게 하면 VSCode에서 IntelliSense기능이 제대로 작동하지 않아서 import하는 클래스/함수의 프로퍼티나 주석을 제대로 찾지 못해서 불편한 경우가 있습니다.
위의 이미지를 보시면 열심히 jsdoc
으로 주석으로 적어놨는데도 VSCode에서 Note에 대한 정보를 제대로 찾지 못해서 생성자에서 super()가 any
로만 표시되는 것을 확인하실 수 있습니다.
이럴 경우, 프로젝트 제일 상위 폴더에 jsconfig.json
파일을 생성해서, VSCode가 경로를 제대로 찾을 수 있도록 설정 해 두는 것이 좋습니다. 타입스크립트를 사용하시는 경우, tsconfig.json
에 밑의 옵션을 그대로 넣어주시면 됩니다.
/* jsconfig.json */
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"Components/*": ["./client/components/*"],
"@/*": ["./client/*"],
}
}
}
마우스를 super위로 옮길 시, jsdoc
으로 남겨두었던 주석이 제대로 뜨는 것을 확인하실 수 있습니다!!