vscode powershell 运行ts-node 报错
vscode powershell 运行ts-node 报错
复现:window10, 在外部CMD 全局安装了ts-node,执行ts-node -v 显示版本号安装成功。在vscode中打开终端,新建ts文件并使用ts-node test.ts 报错。

ts-node : 无法加载文件 xxxx,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 + ts-node 07.ts + ~~~~~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
出现原因:cmd上面运行的脚本在powershell上不能运行,powershell的执行策略限制了其执行。
解决办法:查看powershell的执行策略,并针对用户更改执行策略
执行命令查看执行策略: Get-ExecutionPolicy -List

大概解释一下:
userPolicy --- 计算机当前用户组策略设置
Process --- 该作用域只影响当前powershell会话,执行策略未保存在注册表中,关闭即删除。(可参照sessionStorage来理解)
CurrentUser --- 执行策略只影响当前用户,保存在HKEY_CURRENT_USER 注册表中
LocalMachine --- 执行策略会影响当前计算机上的所有用户,并保存在注册表中
更改CurrentUser的执行策略
Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
这里要把CurrentUser 改为RemoteSigned 就可以了
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
再次查看执行策略

此时就已经ok啦
参考链接:
vscode powershell 运行ts-node 报错
浙公网安备 33010602011771号