cannot be loaded because running scripts is disabled on this system

cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.

在powershell中打开angular-cli的时候,输入ng命令,收到了这个提示

ng : File C:\Users\ysu10\AppData\Roaming\npm\ng.ps1 cannot be loaded because running scripts is disabled on this
system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ ng new
+ ~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

这个原因是由于脚本执行策略为严格模式,所以无法执行,可以通过

Get-ExecutionPolicy

来获取当前的脚本执行策略
默认为Restricted,要使脚本能够执行,需要修改为Unrestricted 或 Bypass.
相应的命令分别为

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

如果设置为unrestricted,则如果执行从网上下载的未签名脚本时会询问用户。
如果设置为bypass,则会直接执行。

建议设置为unrestricted。

### 解决方案分析 #### 错误原因解析 npm 报错通常由多种因素引起,常见的错误包括但不限于语法错误、依赖冲突以及环境配置问题。具体到当前情况,在尝试通过 `npm install` 进行包管理操作时遇到的报错信息表明存在意外字符 `'.'` 的问题[^4]。 对于 pnpm 能够正常工作而 npm 出现异常的情况,这可能是由于两者的工作机制不同所致。pnpm 使用严格的内容寻址存储来确保每次安装的一致性和安全性,减少了因路径长度限制或权限设置不当引发的问题;相比之下,npm 可能会因为缓存损坏或者全局模块路径中的执行策略等因素受到影响[^1]。 #### Windows PowerShell 执行策略影响 特别是在 Windows 平台上,PowerShell 默认的安全策略可能会阻止某些脚本文件(如 `.ps1` 文件)被执行,这是为了防止潜在的安全风险。如果系统中启用了严格的执行策略,则即使是合法命令也可能被拦截并抛出类似 “cannot be loaded because running scripts is disabled on this system”的警告消息[^3]。 #### 具体解决方案建议 ##### 更新 Node.js 和 npm 版本 保持开发工具链处于最新状态有助于避免兼容性问题带来的麻烦。可以考虑升级至最新的稳定版 Node.js 来获取更好的性能和支持更多的特性集。 ##### 清理 npm 缓存 有时本地缓存的数据可能导致后续的操作失败。可以通过清除现有缓存重新同步远程仓库的状态: ```bash npm cache clean --force ``` ##### 设置合适的 PowerShell 执行策略 调整 PowerShell 中关于允许加载签名与否及其他条件下的脚本行为。注意修改前需权衡安全性和便利性的平衡点: - **临时更改**:仅限于当前 session 生效的方式适合测试目的。 ```powershell Set-ExecutionPolicy Bypass -Scope Process ``` - **永久变更**:适用于长期需求但要谨慎评估其后果。 ```powershell Set-ExecutionPolicy RemoteSigned -Force ``` ##### 尝试使用 nrm 切换镜像源 国内网络环境下访问官方 NPM 服务器速度较慢甚至不稳定,可借助第三方加速服务改善下载体验: ```bash npm install -g nrm nrm use taobao ``` ##### 验证全局安装目录写入权限 确认拥有足够的权限去往指定位置放置新软件组件。必要时可通过管理员身份启动终端窗口完成相应指令调用。 ##### 替代方案——继续沿用 pnpm 既然已经验证过 pnpm 在相同条件下表现良好,不妨将其作为首选项持续维护下去。毕竟二者本质上都是 JavaScript 社区认可度较高的构建工具之一[^2]。 ```javascript // 如果决定切换回 npm,请先卸载已有的 pnpm 实例 npm uninstall -g pnpm ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值