如何修复错误 - nodemon.ps1 无法加载,因为在此系统上禁用了运行脚本,(没有安全风险)?

Tra*_*der 46 powershell web-development-server node.js nodemon visual-studio-code

终端错误:无法加载 nodemon.ps1,因为在此系统上禁用了运行脚本。有关详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkID=135170 上的 about_Execution_Policies。

我有一个通过这种方式解决问题的解决方案

  1. 以管理员身份打开 Windows PowerShell
  2. 运行此命令:Set-ExecutionPolicy Unrestricted

这解决了问题,但这样系统会显示安全风险警告。我的问题:有没有其他方法可以在没有安全风险的情况下解决这个问题?目标是使用 nodemon。

der*_*783 99

我建议使用RemoteSigned而不是Unrestricted,并CurrentUser尽可能将策略限制为。

以管理员身份运行 Powershell,然后:

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

RemoteSigned:“Windows 服务器计算机的默认执行策略。”



除此之外,我不会太担心它,因为它不是一种安全机制。请参阅文档中的此引用

“执行策略不是限制用户操作的安全系统。例如,当用户无法运行脚本时,可以通过在命令行输入脚本内容轻松绕过策略。相反,执行策略帮助用户设置基本的规则并防止他们无意中违反这些规则。”

  • 像冠军一样工作,伙计。 (5认同)
  • 简短而正确。先生给你投一票吧! (4认同)
  • @TommyHoang,以管理员身份运行 CMD,然后:`cmd.exe /c powershell -command Set-ExecutionPolicy RemoteSigned` (3认同)
  • 无论如何可以通过命令 promt 设置此策略吗? (2认同)

小智 17

这个命令可能有帮助

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


小智 16

对于那些不知道如何使用 Windows PowerShell 解决此错误的人

  1. 打开 PowerShell(以管理员身份运行)
  2. 使用此命令检查当前执行策略
    Get-ExecutionPolicy
    # You should get 'Restricted'
Run Code Online (Sandbox Code Playgroud)
  1. 运行此命令以使其“不受限制”
    Set-ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)
  1. 再次检查执行策略是否通过运行此命令更改
    Get-ExecutionPolicy
    # You should get 'Unrestricted'
Run Code Online (Sandbox Code Playgroud)
  1. 现在尝试在您的项目上运行 nodemon
    nodemon 'filename.js'
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助

  • 这节省了我的时间。我非常感激。 (2认同)
  • 这实际上对我来说就像一个魅力。谢谢! (2认同)

小智 14

允许远程签名脚本在本地计算机上运行不会有任何安全风险。这基本上意味着您可以执行本地未签名的脚本,即您编写的脚本,而来自远程源(在这种情况下为 nodemon)的脚本必须由受信任的机构签名。

PS:如果你在 Windows 上,你可以去设置 >> 更新和安全 >> 开发人员 >> 选中旁边的框 change execution policy to allow local powershell scripts to run without signing


小智 12

我有一个更好的解决方案,只需转到所在的文件夹nodemon.ps1(路径错误)并删除nodemon.ps1文件即可。

现在转到终端并运行nodemon -v,如果你得到一个版本,那么问题就解决了。


小智 12

步骤 1:转到此位置 --> 文件 C:\Users\Dell\AppData\Roaming\npm
步骤 2:删除 nodemon.ps1 文件并运行命令。

  • 这是最简单的,而且有效,谢谢 (2认同)

kmg*_*mgt 8

使用 npm 时,我建议桥接 部分中的 nodemon 命令scripts并保留安全设置不变。

包.json:

{
    "scripts": {
        "hmr": "nodemon index.js",
        "nodemon": "npm run hmr",
        "start": "node index.js"
    },
    "dependencies": {}
}
Run Code Online (Sandbox Code Playgroud)

只需执行即可在幕后npm run nodemon运行该行。hmr


小智 8

您可以在不更改策略的情况下完成此操作。C:\Users\HP MICROTECH\AppData\Roaming\npm\nodemon.ps1(错误屏幕上给出了路径)

只需转到此路径并删除nodemon.ps1

你的nodemon就在那里运行。


Vin*_*ola 8

消除此错误的最佳方法是以
管理员身份在 Windows Power shell 中运行以下命令

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

基本上它会要求您更改执行策略然后输入 Y 。

                  **OR**
Run Code Online (Sandbox Code Playgroud)

你能做的就是不改变你的执行政策

  1. 使用以下命令安装nodemon:npm i nodemon -g
  2. 然后输入nodemon -v,您将在错误的第一行中看到一个路径,转到该路径,然后删除该nodemon.ps1文件或带有.ps1xml扩展名的文件名。

确保您正在全局安装 nodemon 有关更多详细信息,请参阅microsoft 执行策略文档