SAPUI5 Scaffolding 설치 오류 – VS Code Powershell ExecutionPolicy

SAPUI5 Scaffolding VS Code 설치시 오류 – ExecutionPolicy Powershell – Powershell vs cmd 차이

 

Visual Studio Code에 SAPUI5 환경 구축이 완료된 후, Easy-UI5와 같은 SAPUI5 Scaffolding 툴을 설치하려면 요먼(yeoman) 툴 등을 터미널을 통해 설치하게 됩니다.

Visual Studio Code에서는 기본적으로는 Powershell로 터미널이 열리게 되는데요, 종종 Visual Studio Code Powershell 터미널에서 요먼(yeoman)을 실행하면 다음과 같은 오류 메시지가 발생합니다.

이는 요먼(yeoman)뿐만 아니라 다른 npm 패키지 설치 후 종종 겪을 수 있는데요, 이는 Powershell의 권한 문제 때문에 발생하는 상황입니다.

 

SAPUI5 Scaffolding 권한 오류

윈도우 10에서 Poweshell 과 Terminal의 차이점

 

윈도우에서 cmd 명령어 프롬프트와 파워셀은 겉으로 보면 비슷해보입니다. 하지만, cmd의 경우에는 일부 한정된 명령어 내에서만 실행이 가능하지만, 파워셀(Powershell)은 훨씬 많은 명령어를 통해 윈도우 시스템을 더욱 더 제어할 수 있습니다.

파워셀의 경우 더 많은 부분을 수행할 수 있기 때문에 좀 더 타이트하게 권한 관리가 수행됩니다.

따라서 요먼을 설치한 후 Visual Studio Code 터미널(파워쉘)에서 SAPUI5 Scaffolding 등의 툴을 설치하기 위해 실행하면 다음과 같은 오류가 발생하는 경우가 있습니다.

위에 설명한 파워쉘 실행 권한(ExecutionPolicy)으로 인한 오류 입니다.

 

SAPUI5 Scaffolding 설치를 위한 파워셀의 권한 변경

 

SAPUI5 Scaffolding 툴 등을 npm 을 통해 설치하고 해당 스크립트를 설치 후 실행 권한이 없어 오류가 발생한다면, 아래와 같이 파워쉘에서 실행할 수 있는 권한을 좀 더 허용해 주면 처리가 가능합니다.

Windows Powershell을 관리자 권한으로 실행합니다.


터미널에서 다음과 같이 실행한 후, 다음과 같이 입력하여 현재 권한을 확인합니다.

Get-ExecutionPolicy

 

AllSigned 혹은 Restricted 인 경우 실행이 안될 수 있습니다.

 

아래와 같이 입력하여 권한을 변경해 줍니다.

Set-ExecutionPolicy RemoteSigned

SAPUI5 Scaffolding - powershell 권한 변경

정책을 변경 한 후 정상적으로 스크립트가 수행됨을 확인할 수 있습니다. 이제 yeoman 패키지를 통해 SAPUI5 Scaffolding 툴을 설치할 수 있습니다.

powershell 변경된 권한 확인

 

참고로 적용할 수 있는 옵션은 다음과 같습니다.

 

Restricted: PowerShell의 실행 권한 정책 중에서 처음 기본적으로 적용되어있는 옵션입니다. ps1 스크립트 파일은 로드할 수 없도록 되어 있습니다.

AllSigned: 신뢰된 배포자의 서명이 포함된 스크립트만을 실행 되도록 설정됩니다.

RemoteSigned : 로컬 PC에서 직접 생성한 스크립트 혹은 외부 인터넷에서 받은 스크립트 중 신뢰된 배포자에 의한 서명이 포함된 것만 실행됩니다.

Unrestricted : 로컬 PC 혹은 인터넷으로 부터 다운로드 받은 모든 모든 스크립트를 제한없이 실행 가능한 정책입니다.

ByPass : 어떠한 스크립트도 차단이나 경고 없이 실행됩니다.

Undefined : 정책 적용을 아예 하지 않습니다.

 

좀더 상세한 권한 설정과 관련된 사항은 마이크로소프트 MSDN(여기) 에서 확인이 가능합니다.

Visual Studio Code에서 Policy 권한으로 인해 스크립트 실행이 되지 않을 때에는 위와 같이 정책 변경을 해보시기 바랍니다.

2022년 기준 Visual Studio Code에 SAPUI5 환경 설정이 필요한 경우에는 (이 글)을 확인해 보시기 랍니다.