具体报错情况: 复现:window10, 在外部CMD 全局安装了ts-node,执行ts-node -v 显示版本号安装成功。在vscode中打开终端,新建ts文件并使用ts-node test.ts 报错。
出现原因:cmd上面运行的脚本在powershell上不能运行,powershell的执行策略限制了其执行。
解决办法:查看powershell的执行策略,并针对用户更改执行策略
具体操作如下:
-
打开vscode powershell,执行命令查看执行策略:Get-ExecutionPolicy -List 大概解释一下:userPolicy --- 计算机当前用户组策略设置
Process --- 该作用域只影响当前powershell会话,执行策略未保存在注册表中,关闭即删除。(可参照sessionStorage来理解)
CurrentUser --- 执行策略只影响当前用户,保存在HKEY_CURRENT_USER 注册表中
LocalMachine --- 执行策略会影响当前计算机上的所有用户,并保存在注册表中
-
这里更改CurrentUser的执行策略,执行命令:
命令行: Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
键入:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
3, 看一下现在改成啥样:Get-ExecutionPolicy -List 修改CurrentUser成功,再执行ts-node 看看: 成功~ 完事儿
具体删除执行策略什么的操作,参考链接:https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1
|