리액트 프로젝트를 생성하고, 로컬 웹 서버를 띄우기 위해 npm install -g http-server 로 http-server 설치를 진행했다.
그리고 http-server ./ 명령어를 통해 웹 서버를 올렸으나
http-server : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\user\AppData\Roaming\npm\http-server.ps1 파일을 로드할 수 없습니다.
자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)
를 참조하십시오.
위치 줄:1 문자:1
+ http-server ./
+ ~~~~~~~~~~~
+ CategoryInfo : 보안 오류: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
내가 해당 명령어를 실행한 환경이 Visual Studo Code 에서 띄운 터미널인데 이때 PowerShell을 띄운다.
원인은 권한 문제이고, PowerShell은 보안 문제로 스크립트를 허용 하지 않는다.
(이럴 땐 보통 cmd 를 관리자 권한으로 실행시키는 방법으로 진행한다)
ExecutionPolicy 를 입력하여 현재 권한을 확인 할 수 있는데
'Restricted' 는 모든 스크립트를 막고, 'Unrestricted' 는 모든 스크립트를 허용하는 것이다.
Set-ExecutionPolicy Unrestricted 을 입력하니
Set-ExecutionPolicy : 레지스트리 키 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'에 대한 액세스가 거부되었습니다.
기본(LocalMachine) Scope에 대한 실행 정책을 변경하려면 "관리자 권한으로 실행" 옵션으로 Windows PowerShell을 시작하십시오.
현재 사용자에 대한 실행 정책을 변경하려면 "Set-ExecutionPolicy -Scope CurrentUser"를 실행하십시오.
다시 한 번 Set-ExecutionPolicy -Scope CurrentUser 를 실행하면
현재 사용중인 사용자 계정에서만 변경하는 것이고
해당 명령어를 실행한 뒤에 http-server 를 입력하니 정상적으로 실행되었다.
참고