cra + eslint(airbnb) extensions, no-unresolved 오류 해결

terminal
1
2
3
yarn create react-app . --template typescript
yarn eslint --init
yarn add -D eslint-config-airbnb@latest
  • cra + eslint(airbnb)
  • 이렇게 리액트 프로젝트를 시작했을 때,

import/extensions
import/no-unresolved
react/jsx-filename-extension

  • 이런 오류가 나온다
  • 오류가 뜨지 않도록 eslintrc를 설정해주자

eslintrc

eslintrc.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
// ...
"rules": {
"react/jsx-filename-extension": [
"error",
{ "extensions": [".ts", ".tsx"] }
],
"import/extensions": [
"error",
"ignorePackages",
{
"ts": "never",
"tsx": "never"
}
]
},
"settings": {
"import/resolver": {
"node": {
"extensions": [".ts", ".tsx", ".js", ".jsx"]
}
}
}
}
  • 위처럼 설정해 주었다

참고

vscode bracket pair colorizer

  • 익스텐션으로 사용하던 Bracket Pair Colorizer가 vscode 기본 기능이 되었다
  • 기존에 사용하던 익스텐션을 제거하고, 세팅에서 활성화해주었다
settings.json
1
2
3
4
{
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active"
}

참고

IntersectionObserver 화면에 특정 엘리먼트가 보이면?!

  • 뷰포트에 들어오는 것을 감지할 수 있다
example.ts
1
2
3
4
5
6
7
8
// 검색창 인풋 오토포커스

const observer = new IntersectionObserver((entries) => {
if (!entries[0].intersectionRatio) return;
document.querySelector('input.searchbox-input').focus();
});

observer.observe(document.querySelector('input.searchbox-input'));
  • 위 코드는 검색창을 켜면 인풋에 오토포커스 되도록하는 코드이다

참고