[VSCode] "npm : 이 시스템에서 스크립트를 실행할 수 없으므로..." 오류 해결 방법

2024. 11. 14. 10:18카테고리 없음

VScode 터미널에서 npm 사용시 

PS D:\Develop\Workspace\202409\first-react-board\src\main\frontend> npm start
npm : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Program Files\nodejs\npm.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://
go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.

위의 오류가 발생할 경우 위의 경로(https://go.microsoft.com/fwlink/?LinkID=135170)를 검색한 결과로 아래와 같은 PowerShell 정책을 가지고 있다고 한다.


PowerShell 실행 정책

이러한 정책의 적용은 Windows 플랫폼에서만 발생합니다. PowerShell 실행 정책은 다음과 같습니다.

  • AllSigned

    • 스크립트를 실행할 수 있습니다.
    • 로컬 컴퓨터에서 작성하는 스크립트를 포함하여 신뢰할 수 있는 게시자가 모든 스크립트 및 구성 파일에 서명해야 합니다.
    • 아직 신뢰할 수 있거나 신뢰할 수 없는 것으로 분류되지 않은 게시자의 스크립트를 실행하기 전에 메시지를 표시합니다.
    • 서명되었지만 악의적인 스크립트가 실행될 위험이 있습니다.
  • Bypass

    • 아무것도 차단되지 않으며 경고 또는 프롬프트가 없습니다.
    • 이 실행 정책은 PowerShell 스크립트가 더 큰 애플리케이션에 기본 제공되는 구성 또는 PowerShell이 자체 보안 모델을 가진 프로그램의 기초가 되는 구성을 위해 설계되었습니다.
  • Default

    • default 실행 정책을 설정합니다.
    • Restricted Windows 클라이언트의 경우
    • Windows 서버용 RemoteSigned .
  • RemoteSigned

    • default Windows 서버 컴퓨터에 대한 실행 정책입니다.
    • 스크립트를 실행할 수 있습니다.
    • 전자 메일 및 인스턴트 메시징 프로그램을 포함하는 인터넷에서 다운로드되는 스크립트 및 구성 파일에 대해 신뢰할 수 있는 게시자의 디지털 서명이 필요합니다.
    • 로컬 컴퓨터에 작성되고 인터넷에서 다운로드되지 않은 스크립트에는 디지털 서명이 필요하지 않습니다.
    • cmdlet을 사용하는 등 스크립트가 차단 해제된 경우 인터넷에서 다운로드되고 서명되지 않은 스크립트를 Unblock-File 실행합니다.
    • 악의적일 수 있는 인터넷 및 서명된 스크립트 이외의 원본에서 서명되지 않은 스크립트를 실행할 위험이 있습니다.
  • Restricted

    • default Windows 클라이언트 컴퓨터에 대한 실행 정책입니다.
    • 개별 명령을 허용하지만 스크립트는 허용하지 않습니다.
    • 서식 및 구성 파일(), 모듈 스크립트 파일() 및 PowerShell 프로필(.ps1xml.psm1)을 비롯한 모든 스크립트 파일의 실행을 방지합니다.ps1.
  • Undefined

    • 현재 scope실행 정책 집합이 없습니다.
    • 모든 범위 Undefined의 실행 정책이 있는 경우 유효한 실행 정책은 Restricted Windows 클라이언트 및 Windows Server용 RemoteSigned 에 대한 것입니다.
  • Unrestricted

    • Windows가 default 아닌 컴퓨터에 대한 실행 정책이며 변경할 수 없습니다.
    • 서명되지 않은 스크립트를 실행할 수 있습니다. 악의적인 스크립트를 실행할 위험이 있습니다.
    • 로컬 인트라넷 영역이 아닌 스크립트 및 구성 파일을 실행하기 전에 사용자에게 경고합니다.

    참고

    UNC(유니버설 명명 규칙) 경로를 인터넷 경로와 구분하지 않는 시스템에서 UNC 경로로 식별되는 스크립트는 RemoteSigned 실행 정책을 사용하여 실행할 수 없습니다.


현재 정책 확인 방법

PowerShell을 관리자 모드로 실행 후 아래의 명령어를 실행한다.

PS C:\Users\AAAAA> get-ExecutionPolicy
Restricted

현재 정책이 " Restricted" 라는 것을 확인할 수 있다. 명령어를 허용하지 않는 정책이기 때문에 변경한다.

실행 정책 변경

PS C:\Users\AAAAA> Set-ExecutionPolicy RemoteSigned

위의 명령어를 실행 후 VBCode 터미널에서 실행하면 정상 동작한다.