【问题标题】:tsc.ps1 cannot be loaded because running scripts is disabled on this system无法加载 tsc.ps1,因为在此系统上禁用了运行脚本
【发布时间】:2020-03-06 20:28:27
【问题描述】:

在 PowerShell 上,我在执行 tsc 时收到错误消息。这种情况以前从未发生过。

我不确定我是否应该结合 PowerShell 安全设置来纠正这个问题,例如基于这个:PowerShell says "execution of scripts is disabled on this system."

更新

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

【问题讨论】:

  • 您别无选择。需要设置脚本执行策略以允许在 Windows 系统上运行 .ps1 脚本。您可以通过在 Powershell ISE 或类似设备中运行来避免,否则系统策略会规定。
  • 我意识到旧版本的 npm 不会包含 ps1 文件,不知道他们为什么现在开始这样做。
  • 将 PowerShell 脚本执行策略设置为至少“RemoteSigned”没有任何问题。
  • @Ansgar Wiechers 好吧

标签: typescript powershell


【解决方案1】:

您可以在 PowerShell 命令中运行它。请务必以管理员身份运行它:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

【讨论】:

  • 你能详细说明它的作用吗?它有多安全?
  • 以管理员身份运行 PowerShell 非常重要
  • 请详细说明它是什么以及它的作用。我在没有任何解释的情况下看到这么多对答案的支持。请不要让 SO 成为人们来黑客而不是学习的网站。
  • 很好的解决方案,用打字稿解决了我的问题
【解决方案2】:

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

tsc.cmd -v
tsc.cmd --init

【讨论】:

【解决方案3】:

打开 Command_form : windows + R

类型:Powershell

然后输入:set-executionpolicy remotesigned

然后选择选项:A

【讨论】:

    【解决方案4】:

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

    会有用的

    【讨论】:

    • 这似乎有点不清楚 - 问题是关于 powershell 脚本的。您建议使用 tsc.cmd 来运行打字稿文件 - 可能会扩展一点,并告诉从哪里获取 ts 文件以及我与 tsc.ps1 的关系
    • github.com/npm/cli/issues/470#issuecomment-586845035 Windows 中的 npm 仍然会安装 cmd 版本
    • 我不知道为什么它被否决了,但我发现这很有用,而不是在 PowerShell 中更改执行策略。
    【解决方案5】:

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

    【讨论】:

    • 这对我有用
    【解决方案6】:

    使用 tsc.cmd 代替 tsc

    示例:

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

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

    【讨论】:

    • 作为管道操作符的使用也被否决了 |是错误的,如果你想在单行编译后运行编译的脚本,应该使用 && 代替。
    【解决方案7】:

    如果您使用 Powershell 作为默认 shell,那么您将在运行时收到此错误: as shown

    要解决此问题,您可以使用以下选项。您可以选择其中任何一个来解决您的问题:

    1. 您必须在 PS(Powershell) 中通过以下命令启用执行策略:

      Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

    一旦它使您能够直接运行 tsc 命令。

    • 由于 Powershell 是默认终端外壳,您可以使用以下命令运行所有与打字稿相关的命令,例如:

      tsc.cmd -v

    • 您可以通过 Visual Studio 代码中的以下方法将默认 shell 从 Powershell 更改为 cmd。然后使用 cmd shell,您可以像 tsc -v 一样正常使用打字稿,而不是使用 tsc.cmd -v

    启用 cmd.exe 作为 VS Code 的默认 shell 的步骤:

    • 按ctrl+shift+p

    • 按“终端:选择默认配置文件” as shown

    • 选择 cmd.exe 作为默认终端 shell。 as shown

    • 现在在终端窗口中您将看到 cmd.exe as shown

    【讨论】:

    • 希望将图片直接插入文本中,还是希望将它们作为链接保留?
    【解决方案8】:

    您也可以转到 File > Settings > Extensions > JSON > Schema 并将其添加到该 JSON:

    "terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]
    

    重新启动,它应该可以工作。

    【讨论】:

      【解决方案9】:

      “无法加载文件,因为在 Windows Powershell FIX 中此系统上禁用了运行脚本。” 在 windows 权限的最新更新中观察到了这一点,我们需要做的就是在 windows 中搜索 Powershell 并以管理员身份运行并运行下面给出的以下命令。

      如果您在 Windows 10 上尝试在 Powershell 中运行脚本时遇到错误,提示您的脚本“无法加载,因为在此系统上禁用了运行脚本”,您必须首先更改执行策略。

      要在 power shell 中输入的命令:

      1)Get-ExecutionPolicy -List

      2)Set-ExecutionPolicy 不受限制

      3)Set-ExecutionPolicy Unrestricted -Force

      注意:- 给出第二个命令后会提示你输入 Y/N,所以输入为 'Y' 并点击输入按钮

      如果 PowerShell 抛出错误消息 - 无法加载文件,因为在此系统上禁用了运行脚本,那么您需要启用在 Windows 10 计算机上运行的脚本。此错误的原因在于您的用户帐户没有足够的权限来执行该脚本。这并不意味着您需要拥有管理员级别的权限,也意味着您还需要不受限制地运行这些类型的 PowerShell 脚本或 cmdlet

      【讨论】:

        【解决方案10】:

        在Visual Studio代码中->终端->打开新终端 然后在终端的右上角有一个箭头↓除了+号 - >选择“cmd” 然后你可以运行 tsc filename.ts 命令不使用 tsc cmd文件名.ts 然后使用节点文件名 这是你的输出... taaaa-daaaaa

        【讨论】:

          猜你喜欢
          • 2020-10-15
          • 2021-10-27
          • 2017-04-28
          • 2021-02-22
          • 2020-06-20
          • 2013-05-03
          • 2013-10-06
          • 2019-10-05
          • 2022-10-25
          相关资源
          最近更新 更多