이번에 nestjs로 백엔드 서버를 구축해보는 경험을 하기위해 npm i -g @nestjs/cli
로 nestjs/cli를 설치하고 설치가 잘 되었는지 확인하기 위해 nest --version
으로 버전확인을 해보려고 해도, 프로젝트를 생성하기 위해 nest new nest-first
를 입력도 했봤는데 둘다 아래와 같은 에러가 반환되었다.
문제 1.
nest : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\권태형\AppData\Roaming\npm\nest.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
위치 줄:1 문자:1
- nest --version
+ CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
문제의 원인
위와 같은 에러를 반출하는 이유는 PowerShell의 실행 정책을 따로 한번도 손보지 않아서 기본값인 Restricted
로 설정되어 있었기 때문에 스크립트 실행에 보안을 위해 제한이 결려 있었기 때문이다.
해결 방법
PowerShell의 권한 설정을 변경함으로써 사용에 문제가 없게 할 수 있었다.
먼저 Window검색창에서 PowerShell을 찾아주고 관리자 권한으로 실행해 준다.
다음 아래의 명령어를 입력해서 현재 PowerShell 정책 상태를 확인한다.
Get-ExecutionPolicy
😪아쉽게도 파워쉘은 마우스 우클릭조차 지원하지 않아서 일일히 타이핑을 쳐야한다. 복붙은 불가능하다.
반환된 값이 Restricted라면, PowerShell의 실행 정책이 스크립트 실행을 허용하지 않도록 설정되어 있다.
Set-ExecutionPolicy RemoteSigned
위 명령어를 실행하면 이 실행 정책 변경이 현재의 Windows PowerShell 정책에 영향을 미칩니다. 계속하시겠습니까?라는 메시지가 나오면 Y를 입력한다.
정책변경이 완료되고 나서 다시 VSCode로 돌아가서 기존의 명령어를 실행해 보자.
정상 동작 하는 것을 확인할 수 있다.