【Angular】ngコマンド実行時エラー「ng.ps1を読み込めません。」の解消方法
Angularで「ng generate component」のコマンドを実行した時、以下のようなエラーが出ましたので解消するための覚書です。
エラーメッセージ:
ng : ファイル C:\Users\Administrator\AppData\Roaming\npm\ng.ps1 を読み込めません。ファイル C:\Users\Administrator\AppData\Roaming\npm\ng.ps1 はデジタル署名されていません。このスクリプトは現在のシステムでは実行できません。スクリプトの実行および実行ポリシーの設定の詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
このエラーはPowerShell実行ポリシーの設定変更によって解消できるようです。
上記の画像でもう既に実行してしまっていますが、「Get-ExecutionPolicy」のコマンドで現在のポリシー設定を確認します。「AllSigned」となっていますね。
「AllSigned」の場合、すべてのスクリプトと構成ファイルが信頼された発行元によって署名されている必要があるのだそうです。
「AllSigned」の設定になっていることが原因でこのエラーが起きていました。
次に「Set-ExecutionPolicy Unrestricted」のコマンドでポリシー設定を変更します。
そして、最後に「Get-ExecutionPolicy」のコマンドで確認ですね。ポリシー設定が「Unrestricted」に変更されました。
「Unrestricted」は、署名されていないスクリプトを実行できるが、悪意のあるスクリプトを実行するリスクがあるのだそうです。
※この変更をすることによりセキュリティレベルは下がるので実施する場合、自己責任でお願いいたします。
無事「ng generate component」のコマンドを実行することができました。
以上となります。
ここまでお読みいただきありがとうございました。