Firebase-tools: npm i -g firebase-tools 导致 ...firebase.ps1 无法加载,因为在此系统上禁用了运行脚本

创建于 2019-08-27  ·  44评论  ·  资料来源: firebase/firebase-tools

我今天更新 firebase-tools 后遇到以下错误。
我使用 Visual Studio Code,在最新的 firebase 更新后,我无法在 PowerShell 终端中运行任何 firebase 脚本。
我可以在 cmd 中运行它们,也可以在 PowerShell 中运行其他脚本,例如 npm 和 Netlify 托管。
今天早些时候部署后,我在一个项目中使用了 firebase,得到了更新 firebase-tools 的提示,这样做了,但现在无法从 PowerShell 访问任何项目中的 firebase。
使用 6 个月以上没有问题。

[必需] 环境信息


// 不能运行这个命令,但是 package.json 说:
“火力基地”:“^5.11.1”,

平台:
Windows 10 家庭版

[必需] 测试用例

  1. 安装 Visual Studio 代码
  2. 打开一个新文件/文件夹
  3. 在终端 -
    npm install -g firebase-tools
  4. PowerShell终端中 -
    firebase // 后跟任何命令
    导致错误:
    firebase :文件 C:\Users\mada7\AppData\Roaming\npm\firebase.ps1 无法加载,因为在此系统上禁用了运行脚本。 有关详细信息,请参阅 about_Execution_Policies,网址为
    https://go.microsoft.com/fwlink/?LinkID=135170。

[必需] 重现步骤

如上

[必需] 预期行为

firebase 在 powershell 中运行脚本,直到将 firebase-tools 更新到最新版本。

[必需] 实际行为

// 不能在 Powershell 中使用 --debug 标志运行
PS C:\web-dev\cv> firebase
firebase :文件 C:\Users\mada7\AppData\Roaming\npm\firebase.ps1 无法加载,因为在此系统上禁用了运行脚本。 有关详细信息,请参阅 about_Execution_Policies,网址为
https://go.microsoft.com/fwlink/?LinkID=135170。
在行:1字符:1

  • 火力基地
  • ~~~~

    • CategoryInfo : SecurityError: (:) [], PSSecurityException

    • FullyQualifiedErrorId : 未授权访问

// 在cmd中运行
微软视窗 [版本 10.0.18362.295]
(c) 2019 年微软公司。 版权所有。

C:\web-dev\cv>firebase --debug
[2019-08-27T08:50:01.286Z] -------------------------- --------------------------------
[2019-08-27T08:50:01.290Z] 命令:C:\Program Files\nodejs\node.exe C:\Users\mada7\AppData\Roaming\npmnode_modulesfirebase-tools\lib\bin\firebase.js --debug
[2019-08-27T08:50:01.291Z] CLI 版本:7.2.4
[2019-08-27T08:50:01.291Z] 平台:win32
[2019-08-27T08:50:01.292Z] 节点版本:v10.16.3
[2019-08-27T08:50:01.293Z] 时间:2019 年 8 月 27 日星期二 09:50:01 GMT+0100(英国夏令时间)
[2019-08-27T08:50:01.293Z] -------------------------------------- --------------------------------

用法:firebase [选项] [命令]

最有用的评论

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

所有44条评论

@abeisgoat知道这里发生了什么吗? 这是 Windows 的事情,所以我自然而然地害怕它。

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

安全吗?

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

安全吗?

不幸的是,这并不安全。 如果您选择在使用像巧克力这样的包管理器时非常小心地使用这个警察。

因此,我在当天晚些时候更新了 vue.js,并且在运行这些脚本时也遇到了错误。
在 Vue 论坛上发布了问题并被定向到 Stackoverflow,那里的用户回复了类似的解决方法,我很不情愿地这样做了。
https://stackoverflow.com/questions/57673913/vsc-powershell-after-npm-updating-packages-ps1-cannot-be-loaded-because-runnin

从 7.3.1 更新到 7.3.2 时遇到此问题

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

这是一个很好的解决方案,对我有用。

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

安全吗?

不幸的是,这并不安全。 如果您选择在使用像巧克力这样的包管理器时非常小心地使用这个警察。

好吧,试试这个:

PS C:> Set-ExecutionPolicy RemoteSigned

然后运行您选择的 firebase 语法命令。

使用了这个对我有用的 Set-ExecutionPolicy RemoteSigned。
谢谢

经过努力,我认为 Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser 是解决问题的好选择。您可以使用它不会产生问题。

如果您尝试在 cmd 上生成命令,它将代替 VS Code Terminal 工作。

从目录 C:\Users\< username >\AppData\Roaming\npm\ 中删除 ng.ps1(相应的 ps1 文件),然后尝试清除 C:\Users\< username >\AppData\Roaming\npm-cache 处的 npm 缓存..

这对我有用

从目录 C:\Users< username >\AppData\Roaming\npm\ 中删除 firebase.ps1(相应的 ps1 文件),然后尝试清除 C:\Users< username >\AppData\Roaming\npm-cache 处的 npm 缓存。 ( npm 缓存清理 --force )

这对我有用

从目录 C:\Users< username >\AppData\Roaming\npm\ 中删除 ng.ps1(相应的 ps1 文件),然后尝试清除 C:\Users< username >\AppData\Roaming\npm-cache 处的 npm 缓存。

这对我有用

@rajachennupati的方式 100% 有效。 执行他上面所说的并删除该 .ps1 文件(又名 Windows Powershell 脚本),然后运行命令npm cache clean

@nvrr Do npm cache clean --force这肯定会从缓存中删除所有内容。 如果您不习惯清理整个缓存。 我建议对如何更安全地进行一些研究。

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

有效

有人可以关闭这个问题吗?

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

这是一个很好的解决方案,对我有用。

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

有效

这对我有用..谢谢 >>> Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

允许当前用户使用远程签名脚本:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

我们能否请一个聪明人来解释为什么Set-ExecutionPolicy RemoteSigned -Scope CurrentUser解决了这个问题,以及为什么我们这么多人一开始就遇到错误?

顺便说一句,它也对我有用。

@HeyAshh完全正确。 感觉这个问题实际上并没有得到解决,只是提供了一种解决方法。 在这种情况下,应该重新打开并修复它。

Microsoft 的文档在这里:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7

似乎在某些情况下 PowerShell 会阻止“脚本”。 我不确定什么使 Firebase CLI 符合此政策下的脚本的条件,或者我们最近是否已采取任何措施对其进行更改,但我认为我们无法采取任何措施来更改这种非常系统/shell 特定的行为。 如果有人有想法,我们很乐意听到它!

同样对于遇到此问题的用户:您是否对其他基于节点的 CLI 也有同样的问题? 如果您npm install -g prettier之后可以运行prettier吗?

我能够使用git bash运行 firebase 命令没有任何问题

嗨,我通过更改正在运行的脚本终端解决了这个错误。
我在电源 Shell 1 终端上运行它,然后切换到下一个

嘿,删除上述位置的 firebase.ps1 文件对我有用,而不会影响安全性,希望对您有所帮助

这让我想知道为什么这个错误仍然存​​在

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
使用这个解决同样的问题,它在某种程度上是安全的

@k96white是的,删除 firebase.ps1 文件肯定有帮助

如果您尝试在 cmd 上生成命令,它将代替 VS Code Terminal 工作。

如果你在你的 git bash 中,它也可以工作,没有尝试过 Powershell,认为这是一个 VS Code 问题。

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

是的,它正在工作,谢谢

你好

2020 年 5 月 31 日星期日上午 12:11 anuj agarwal [email protected]
写道:

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy 绕过 -Scope CurrentUser

是的,它正在工作,谢谢


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/firebase/firebase-tools/issues/1627#issuecomment-636386066
或退订
https://github.com/notifications/unsubscribe-auth/ANW5CJADO725ZF6F2OERJWTRUFZB7ANCNFSM4IQA4I4A
.

从目录 C:\Users< username >\AppData\Roaming\npm\ 中删除 ng.ps1(相应的 ps1 文件),然后尝试清除 C:\Users< username >\AppData\Roaming\npm-cache 处的 npm 缓存。

这对我有用

完美运行,没有其他问题。

确保在 vscode 中使用 cmd bash 而不是 powershell,这对我有用;)

这仅适用于 Windows 默认 CMD 中的内置 VSCode 终端,它工作正常。

"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"],
.
.
在 PREFERENCES 设置中尝试这个 -> 搜索自动化并在此“终端 › 集成 › 自动化 Shell:Linux”中添加 -> 添加新的“terminal.integrated.shellArgs.windows”:[“-ExecutionPolicy”,“Bypass”],这个

我为 vscode 使用了 Powershell 集成控制台,它似乎工作得很好

C:\Users{用户名}\AppData\Roaming\npm\firebase.ps1
我删除了这个文件,它对我有用。

Microsoft 的文档在这里:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7

似乎在某些情况下 PowerShell 会阻止“脚本”。 我不确定什么使 Firebase CLI 符合此政策下的脚本的条件,或者我们最近是否已采取任何措施对其进行更改,但我认为我们无法采取任何措施来更改这种特定于系统/shell 的行为。 如果有人有想法,我们很乐意听到它!

同样对于遇到此问题的用户:您是否对其他基于节点的 CLI 也有同样的问题? 如果您npm install -g prettier之后可以运行prettier吗?

不...无法运行 Prettier 或 ES7 代码片段。 现在它在 Firebase 上部署项目也抛出了异常......寻找一个安全的替代方案。

好吧,我在 StackOverflow 上读了一些东西,这对我有用
就是这样:

“只需删除 firebase.ps1 文件”

我有同样的错误。
临时解决方案:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

它对我有用,谢谢...

从目录 C:\Users< username >\AppData\Roaming\npm\ 中删除 ng.ps1(相应的 ps1 文件),然后尝试清除 C:\Users< username >\AppData\Roaming\npm-cache 处的 npm 缓存。

这对我有用

这是 100% 的工作。 谢谢,但我还是不明白刚刚发生了什么。

C:\Users{用户名}\AppData\Roaming\npm\firebase.ps1
我删除了这个文件,它对我有用。

是的,这对我也有用

只删除文件

C:\Users{用户名}\AppData\Roaming\npm\firebase.ps1
我删除了这个文件,它对我有用。

是的,这对我也有用

这也为我解决了问题

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

ahmadalibaloch picture ahmadalibaloch  ·  3评论

SJAnderson picture SJAnderson  ·  4评论

FluorescentHallucinogen picture FluorescentHallucinogen  ·  3评论

jefrydco picture jefrydco  ·  3评论

francisrod01 picture francisrod01  ·  3评论