无法加载 tsc.ps1,因为在此系统上禁用了运行脚本

Cer*_*ism 38 powershell typescript

在 PowerShell 上,我在执行tsc. 这是以前从未发生过的。

我不确定我是否应该使用 PowerShell 安全设置来纠正这个问题,例如基于这个:PowerShell 说“在这个系统上禁用了脚本的执行”。

更新

这是 npm 使用 ps1 脚本的新预期功能。他们的 repo 中提出了一个问题:https : //github.com/npm/cli/issues/470

Esp*_*o57 94

在 PowerShell 命令中运行这个:(一定要以管理员身份运行)

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Run Code Online (Sandbox Code Playgroud)

  • 你能提供更多关于它的作用的细节吗?它有多安全? (7认同)
  • 以管理员身份运行 PowerShell 非常重要 (4认同)
  • 非常好的解决方案,用打字稿解决了我的问题 (4认同)
  • 请提供有关它是什么以及它做什么的详细信息。我看到一个答案有很多赞成票,但没有任何解释。请不要让 SO 成为一个人们来黑客攻击而不是学习的网站。 (3认同)
  • https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7 (2认同)

Hun*_*NM2 35

使用“tsc.cmd”而不是“tsc”。例如:

tsc.cmd -v
tsc.cmd --init
Run Code Online (Sandbox Code Playgroud)

  • 只是为了澄清:“tsc”是一个 bash 脚本 - “tsc.cmd”是该脚本的 Windows 版本。 (4认同)

Sus*_*hil 11

打开命令窗体: windows + R

类型:Powershell

然后输入:set-executionpolicy remotesigned

并选择选项:A


小智 11

tsc.cmd如果您使用的是 Visual Studio Code ,则可以使用tsc. 这对我来说效果很好。


小智 9

这个问题发生在我身上,解决方案是 tsc.cmd [filename.ts]

它会工作

  • 这似乎有点不清楚 - 问题是关于 powershell 脚本。您建议使用 tsc.cmd 运行打字稿文件 - 也许扩展一下,并告诉在哪里获取 ts 文件以及 i 与 tsc.ps1 的关系 (4认同)
  • 我不知道为什么它被否决,但我发现这很有用,而不是更改 PowerShell 中的执行策略。 (3认同)

小智 9

使用 tsc.cmd 代替 tsc

例子:

之前: tsc script.ts && node script.js

之后: tsc.cmd script.ts && node script.js


小智 8

解决了

当执行策略不允许在 Windows 上运行特定脚本时,会出现错误“tsc.ps1 无法加载,因为在此系统上禁用了运行脚本”。

要解决此问题,您可以使用以下三种方法中的任何一种:


  1. 使用Set-ExecutionPolicy -ExecutionPolicy RemoteSigned命令解决该错误。

以管理员身份打开 PowerShell 并使用 Set-ExecutionPolicy 命令设置其执行策略。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Run Code Online (Sandbox Code Playgroud)

如果您无法以管理员身份运行该命令,请尝试使用CurrentUser参数运行该命令。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Run Code Online (Sandbox Code Playgroud)

Get-ExecutionPolicy命令应显示当前会话 (RemoteSigned) 的执行策略。用它来确认您是否已更改它。

Get-ExecutionPolicy
Run Code Online (Sandbox Code Playgroud)
  1. 将 .cmd 添加到命令中

通过将 .cmd 添加到命令中,它会告诉 PowerShell 使用 cmd 版本。

tsc.cmd -v

tsc.cmd --init

tsc.cmd myFile.ts
Run Code Online (Sandbox Code Playgroud)
  1. 您还可以尝试在tsc命令前加上前缀npx

前缀npx是一个 npm 包运行程序,可以运行 npm 注册表中的包而无需安装它们。

npx tsc -v

npx tsc --init

npx tsc myFile.ts
Run Code Online (Sandbox Code Playgroud)

阅读更多内容https://bobbyhadz.com/blog/typescript-tsc-cannot-be-loaded-because-running-scripts-disabled