728x90
AI한테 "서버 올려줘" 하고 사는 날이 길어지면, 어느 날 토큰이 똑 떨어진다. 그날따라 직접 서버를 올려야 할 일이 생긴다(하필). 늘 시키기만 했지 내가 칠 일은 없었는데, 막상 npm run dev를 쳤더니 안 된다. 그 삽질을 적어둔다.
1. 첫 번째 벽 — PowerShell이 npm을 막음
프로젝트 폴더에서 그냥 쳤다.
PS C:\Users\me\Documents\myproject> npm run dev
npm : 이 시스템에서 스크립트를 실행할 수 없으므로 ... npm.ps1 파일을 로드할 수 없습니다.
+ FullyQualifiedErrorId : UnauthorizedAccess
PowerShell 실행 정책이 npm.ps1 스크립트 실행을 막은 거다. 알고 보니 npm은 실행 파일이 세 개다.
- npm : Git Bash 같은 데서 실행
- npm.cmd : cmd 배치 파일 → PowerShell 정책과 무관
- npm.ps1 : PowerShell 스크립트 → 정책에 걸림 (이게 막힌 거)
PowerShell에서 그냥 npm이라고 치면 npm.ps1이 선택돼서 막힌다. 그래서 .cmd를 직접 붙였다.
npm.cmd run dev
npm.cmd는 꼼수가 아니라 원래 있는 정식 입구다(배치 파일이라 정책을 안 거친다). 매번 붙이기 싫으면 정책을 한 번만 풀면 된다.
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
2. 두 번째 벽 — 포트가 이미 쓰는 중
npm.cmd로 넘겼더니 이번엔 이거.
Error: listen EADDRINUSE: address already in use :::3000
EADDRINUSE = "그 포트 이미 누가 쓰고 있음". 범인은 보통 앞에서 안 끈 dev 서버다(나였다). 켜둔 터미널을 그대로 두고 새 창에서 또 켜면 이렇게 된다.
그래서 결국 — 포트 잡은 놈을 찾아서 킬했다.
netstat -ano | findstr :3000 # 맨 끝 숫자가 PID
taskkill /PID <PID> /F
그리고 다시 올리니 떴다(드디어).
한 줄 정리
PowerShell에서 npm이 막히면 npm.cmd로, 포트가 막히면(EADDRINUSE) 이전 서버를 kill하면 된다.
끝.
늘 "올려줘"만 하다가 직접 해보니, 이런 거 하나는 알아두는 게 마음이 편하더라.
728x90
LIST
'OS > WINDOW' 카테고리의 다른 글
| [cmd] 명령프롬프트으로 폴더와 하위폴더 내 파일명 추출하기 (0) | 2023.01.31 |
|---|---|
| [윈도우 11] 오른쪽 클릭 더 많은 옵션 표 기본적으로 표시하게 설정 방법 (0) | 2023.01.30 |
| [cmd] 명령프롬프트 에서 파일명 수정 변경하기 ren 명령어 (일괄, 하위폴더까지) (0) | 2022.06.21 |
| [window] 윈도우 11 시작 메뉴에서 맞춤 목록 삭제 방법 (0) | 2022.02.25 |
| [windows] 윈도우11 작업표시줄 오른쪽이나 왼쪽으로 이동 (Explorer Patcher 사용) (0) | 2022.02.23 |