• Node.js|全局安装的模块无法正常使用


    Node.js全局安装的模块无法正常使用

    问题阐述

    全局安装模块完成之后,无法cmd中使用全局模块,如nodemon,报错如下:

    nodemon : 无法加载文件 D:\Program Files\nodejs\node_global\nodemon.ps1,因为在此系统上 禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

    • nodemon --help
    •   + CategoryInfo          : SecurityError: (:) [],PSSecurityException
        + FullyQualifiedErrorId : UnauthorizedAccess 
      
      • 1
      • 2

    禁止运行脚本!在这里插入图片描述
    这是由于当前用户没有权限加载这些脚本文件,因为在此系统上禁止运行脚本!
    也就是说我们当前用户没有权限,测试一下:
    打开 Powershell ,输入

    get-ExecutionPolicy
    
    • 1

    输出:

    Restricted
    
    • 1

    Restricted 是受限制的,表示状态是禁止的

    解决方案

    1️⃣ 把需要用的全局模块的 bin 目录一个一个添加到环境变量的 Path 中,最麻烦,不实用!
    2️⃣ 用管理员权限打开 Powershell 再操作,太麻烦,不采用!

    3️⃣ 修改 ExecutionPolicy ,提升权限
    首先,如果这么操作可能会报错

    set-ExecutionPolicy RemoteSigned 
    
    • 1

    set-ExecutionPolicy : 对注册表项"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"的访问被拒绝。 要更改默认(LocalMachine)作用域的执行策略,请使用"以管理员身份运行"选项启动 Windows PowerShell。要更改当前用户的执行策略,请运行 “Set-ExecutionPolicy -Scope CurrentUser”。

    在这里插入图片描述
    这样是试图修改全部用户的 ExecutionPolicy
    同样还是权限问题,你当前普通用户不可能修改全部用户的 ExecutionPolicy ,权限不够!
    同样的,要么以管理员身份打开 Powershell 执行此命令,这样就修改了全部用户的 ExecutionPolicy ,还是不推荐!
    🍉退而求其次,只修改当前用户的 ExecutionPolicy
    输入

     Set-ExecutionPolicy -Scope CurrentUser
    
    • 1

    再输入

    RemoteSigned
    
    • 1

    选择 "Y"即可!

    检查一下,再次使用 get-ExecutionPolicy 查看权限,可以看到变为了 RemoteSigned

    在这里插入图片描述

    重启,即可解决问题!

  • 相关阅读:
    Kubernetes(k8s)pod 探针检测
    【重磅+测评】Jetbrain发布Rust IDE,免费使用一年
    nacos上的注册过的服务实例掉线分析
    2022世界杯结果预测,简单AI模型最有效?附代码!
    人机交互:从过去到现在
    产品经理视角 | 电商封装商品数据API接口知识小结
    Threejs阴影问题
    鸿蒙ArkTS声明式开发:跨平台支持列表【Z序控制】 通用属性
    nodejs+vue+elementui学生宿舍公寓报修管理系统python+php
    java培训之SpringMVC错误消息的显示及国际化
  • 原文地址:https://blog.csdn.net/Syc1102g/article/details/126343161