visual studio code 가 파일 클릭시 새 탭에 열리지 않고 기존 파일에 덮어씌워서 켜지는게 많이 불편했는데 이 설정으로 해결했다.
⌘ + ,
로 설정파일 열고 Enable Preview 혹은 Enable Preview From Quick Open 이 체크되어 있다면 체크해제하기
가끔 백엔드 작업을 하다보면 로컬에서 작업을 해서 localhost 만 url 을 갖고 있는데 서드파티 API 를 사용할때 redirect URL 은 https 만 사용 가능하다고 할때 난감할 수 있다. 테스트를 할때마다 배포를 하는 것도 번거롭고..
이럴때 ngrok 을 사용하면 매우 편하다.
대략 2~3시간정도? 어떤 유지시간이 있던거로 기억하는데 ngrok 을 사용하면 localhost 가 https://랜덤문자열.ngrok.io 로 변환되는 것을 볼 수 있다. 이러면 포트포워딩 결과 localhost 인 것은 변함없는데 redirect url 을 로컬환경에서 사용할 수 있게 된다.
수아뎀 - localhost 에 https 로 접속하기 를 참고했다.
"const": {
"prefix": "ct",
"body": ["const "],
"description": "make const"
},
"log": {
"prefix": "cl",
"body": ["console.log('$1');", "$2"],
"description": "Log output to the console"
},
"화살표 함수": {
"prefix": "ar",
"body": ["($1) => {}", "$2"],
"description": "make arrow function"
}
console.log
는 워낙 자주 사용해서 추가했고 const 는 종종 cosnt 라고 오타를 내서 추가했다. 그리고 화살표함수도 자주 사용해서 추가했다.
팀프로젝트를 진행후 팀의 레포를 내 깃허브 레포로 클론받아 설정을 만지고 sass 를 돌리려는데 위의 에러가 떴다. 자료를 찾다보니 그냥 터미널을 껐다가 켜보라는 말에 따라해보니 해결이 되었다..
stackoverflow 에서는 같은 디렉토리에 git clone 을 하여 다른 터미널을 켤때 발생했다고 한다. 여기의 글을 볼때 해당 오류의 원인은 노드가 오래된 파일 핸들이 있는 디렉토리를 읽으려고 시도하니 팀 프로젝트 레포를 내 깃허브 레포로 가져오기 위해 git remote remove origin
, git remote add origin github~~~.git
으로 remote 를 변경하는 과정에서 변경이 발생했는데 이전 위치를 찾으려다 해당 오류가 발생한 것으로 보인다. 그래서 그저 터미널을 새로 켜보는 것으로 도움이 된다고 한다.
참고
s_yeah velog
stackoverflow
stakoverflow post
brew install tree
2단계 트리구조 조회
tree -L 2 -F .
node_modules 제외 프로젝트 구조 조회
tree -I node_modules
-R
로 하위 폴더 전부 적용
sudo chown -R jihun ./react-redux
상황 : ec2 에서 ubuntu 를 사용중인데 nodejs 버전이 바뀌질 않는다
삭제하고 다시 설치해도 12.x 버전이라 옵셔널 체이닝같은 문법이 다 먹히지 않는다..
해결방법 :
오류에 나오는 /var/cache ... 를 sudo dpkg -i --force-overwirte 명령어로 넣어주면 해결된다.
나는 저기 오류에서 /var/cache/apt/archives/nodejs_16.20.2-1nodesource1_amd64.deb
가 나타났다.
그래서
sudo dpkg -i --force-overwrite /var/cache/apt/archives/nodejs_16.20.2-1nodesource1_amd64.deb
실행후
sudo apt -f install
를 실행해주니 해결되었다.
이후
sudo apt-get install nodejs -y
명령어를 통해 nodejs 를 재설치해주니 내가 원하던 버전인 16.x 로 버전이 수정되었다.
참고 레퍼런스
엘런임더의 블로그
nodesource/distributions
lsof -i tcp:8080
sudo kill -9 [PID]
sudo rm -rf /usr/local/lib/node
sudo rm -rf /usr/local/lib/node_modules
sudo rm /usr/local/lib/dtrace/node.d
sudo rm /usr/local/share/man/man1/node.1
sudo rm -rf /usr/local/share/doc/node
sudo rm -rf /usr/local/share/systemtap/tapset/node.stp
sudo rm -rf /usr/local/include/node
sudo rm /usr/local/bin/node
sudo rm /usr/local/bin/npm
sudo rm /usr/local/bin/npx
이후 새로 node.js 사이트에서 lts 버전을 다운받아 사용하면 된다.
가끔가다가 node.js 버전이 잘 안맞아서 생기는 오류라고 하는데 버전을 바꾸고 node.js 를 삭제하고 다시 설치해도 해결이 되고 있지 않던 찰나 velog bi_sz 님의 포스트를 보고 해결할 수 있었다.
mac os, linux
export NODE_OPTIONS=--openssl-legacy-provider
windows
set NODE_OPTIONS=--openssl-legacy-provider
windows powershell
$env:NODE_OPTIONS = "--openssl-legacy-provider"
위의 명령어를 실행하고 나서 해결이 되었다.
이러고 넘어가면 원인도 모르고 왜 해결되었는지도 모르니 더 확인해봤다.
해당 오류의 원인은 Node.js 버전 호환성 문제로 웹팩이 해당 Node.js 버전과 함께 작동하지 않아서 최신 Node.js (나는 최신버전인 20.2버전을 쓰고 있었는데 이전버전인 18, 16버전으로 다운그레이드해도 해결되지 않았다...) 버전과 라이브러리/프레임워크 간의 호환성 문제가 발생할 수 있다.
npv (노드 버전 관리자) 혹은 n 을 통해서 노드의 버전을 쉽게 변경할 수 있으니 그걸 설치해봐도 해결은 되지 않았다.
상단의 명령어는 Node.js 에서 OpenSSL 대신 OpenSSL Legacy Provider 를 사용하도록 설정하는 것으로 이전 버전의 OpenSSL 과 호환성을 유지한다고 한다.
단, 상단의 해결방법은 컴퓨터를 재부팅시 다시 명령을 실행해줘야 하는 문제가 있다.
위의 문제는 WebRTC 를 알아보기 위해 참고 레포를 클론받아 실행해보려 하던 중 발생한 문제였다.
해당 프로젝트를 개발하신 분이 사용중이던 node 버전과 내 컴퓨터의 노드 버전이 달라서 발생한 문제가 아닐까 싶다.