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

How to fix error- nodemon.ps1 cannot be loaded because running scripts is disabled on this system, (without security risk)?

终端错误:nodemon.ps1 无法加载,因为 运行 脚本在此系统上被禁用。更多 信息,请参阅 about_Execution_Policies https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2

我有解决问题的方法:

1. Open Windows PowerShell with Run as Administrator
2. Run this command: Set-ExecutionPolicy Unrestricted

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

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

运行 Powershell 作为管理员,然后:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

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



除此之外,我不会太担心它,因为它不是一种安全机制。请参阅 the docs:

中的这句话

"The execution policy isn't a security system that restricts user actions. For example, users can easily bypass a policy by typing the script contents at the command line when they cannot run a script. Instead, the execution policy helps users to set basic rules and prevents them from violating them unintentionally."

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

P.S:如果您使用的是 windows,您只需转到设置 >> 更新和安全 >> 开发人员 >> 选中 change execution policy to allow local powershell scripts to run without signing[= 旁边的框11=]

这个命令可能有帮助

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

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

package.json:

{
    "scripts": {
        "hmr": "nodemon index.js",
        "nodemon": "npm run hmr",
        "start": "node index.js"
    },
    "dependencies": {}
}

只需执行 npm run nodemon,这将 运行 幕后的 hmr 行。

对于不知道如何使用 Windows PowerShell

解决此错误的用户
  1. 打开 PowerShell(运行 以管理员身份)
  2. 使用此命令检查当前执行策略
    Get-ExecutionPolicy
    # You should get 'Restricted'
  1. 运行这条命令使之成为'Unrestricted'
    Set-ExecutionPolicy Unrestricted
  1. 再次检查运行执行此命令是否更改了执行策略
    Get-ExecutionPolicy
    # You should get 'Unrestricted'
  1. 现在尝试 运行 nodemon 在你的项目上
    nodemon 'filename.js'

希望这会有所帮助

我有更好的解决办法,就是去nodemon.ps1所在的文件夹(路径错误)删除nodemon.ps1个文件。

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

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

此命令正常工作。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

在windows10.

管理和 npm 系统变量中的映射错误路径。转到环境变量并更改 PATH 变量下的那些路径。

第 1 步:

C:\Program Files\nodejs\node_modules\npmC:\Users\Administrator\AppData\Roaming\npm

第 2 步:

然后重启我的系统。

它工作正常。

nodemon:无法加载文件 C:\Users\HP\AppData\Roaming\npm\nodemon.ps1,因为 运行 脚本在此系统上被禁用。更多
信息,请参阅 about_Execution_Policies https://go.microsoft.com/fwlink/?LinkID=135170.

如果有人遇到这个问题...所以我的意见是进入文件并删除 nodemon.ps1 文件然后尝试使用 nodemon filename

我用下面的命令解决了我的问题。

=>运行 PowerShell 作为管理员

=>运行 遵循命令

get-ExecutionPolicy

=>如果受限; 运行下面的命令

set-ExecutionPolicy Unrestricted 

=>并设置为全部

=>再次检查。命令

get-ExecutionPolicy

它会不受限制,问题就解决了

转到文件夹:- C:\Users\admin\AppData\Roaming\npm

删除nodemon或nodemon的powershell文件。ps1。 你会很高兴的。

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

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

然后你的 nodemon 运行了。

运行 这些命令:

  1. set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  2. 获取执行策略
  3. Get-ExecutionPolicy -list

转到 this link,然后按照步骤操作。

以管理员身份 运行 打开 Powershell,然后 运行 以下命令:

PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

PS> Unblock-File -Path [Your Path where the problem found]

PS> Get-ExecutionPolicy

RemoteSigned

消除此错误的最佳方法是
运行 在你的 windows power shell as admin

中执行以下命令

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

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

                  **OR**

你可以做的是不改变你的执行政策

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

确保您正在全局安装 nodemon 更多详情 microsoft execution policies docs

在 运行 某些节点命令时遇到类似问题。 AppData\Roaming\npm\serverless.ps1 无法加载,因为 运行 脚本在此系统上被禁用。

PS C:\Users\adas67> Get-ExecutionPolicy
Restricted

PS C:\Users\adaaa> Get-ExecutionPolicy -List

Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine       Undefined

这样解决了

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser