在安装firebase工具时,尽管已经安装了,NPM仍不断发出依赖警告



当我通过在函数文件夹中运行命令sudo npm i -g firebase-toolsfirebase-tools从8.6.0版本升级到8.7.0时,我会收到以下警告:

npm WARN deprecated har-validator@5.1.5: this library is no longer supported
/.npm/bin/firebase -> /.npm/lib/node_modules/firebase-tools/lib/bin/firebase.js
npm WARN ws@7.3.1 requires a peer of bufferutil@^4.0.1 but none is installed. You must install peer dependencies yourself.
npm WARN ws@7.3.1 requires a peer of utf-8-validate@^5.0.2 but none is installed. You must install peer dependencies yourself.

然后我尝试按照要求安装依赖项。例如,对于bufferutil。我试过这两个安装命令:

sudo npm install --save-dev bufferutil@^4.0.1

sudo npm install bufferutil@^4.0.1

两者都成功安装,消息如下:

> bufferutil@4.0.1 install /_app/functions/node_modules/bufferutil
> node-gyp-build
npm notice save bufferutil is being moved from dependencies to devDependencies
+ bufferutil@4.0.1
updated 1 package in 7.06s
29 packages are looking for funding
run `npm fund` for details

我也为utf-8-validate@^5.0.2做了同样的事情,它给出了同样的成功信息。

但是当我运行firebase deploy --only functions时,它再次告诉我更新到8.7.0,无论我在函数文件夹中运行了多少次安装命令sudo npm i -g firebase-tools

╭───────────────────────────────────────────╮
│                                           │
│      Update available 8.6.0 → 8.7.0       │
│   Run npm i -g firebase-tools to update   │
│                                           │
╰───────────────────────────────────────────╯

因此,我尝试再次安装这两个依赖项,但它给出了与第一个相同的消息,即它需要bufferutil@^4.0.1utf-8-validate@^5.0.2

我不确定我在这里错过了什么。虽然已经安装,但似乎没有安装。

这是我的package.json

{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "10"
},
"dependencies": {
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.9.1",
"pg": "^8.3.0"
},
"devDependencies": {
"bufferutil": "^4.0.1",
"firebase-functions-test": "^0.2.0",
"utf-8-validate": "^5.0.2"
},
"private": true
}

最后我发现了问题。

很明显,问题的发生是因为我的电脑上安装了两个firebase可执行文件。因此,我更新的firebase与执行的firebase不同(因为不同的路径和不同的package.json(。

对我来说,之所以发生这种情况,是因为我将npm设置为从中国镜像服务器安装firebase依赖项,这有很大帮助(然后我不需要VPN来安装firebase依存项(。但我忘了两个firebase可执行的东西。Idk,但你可能也会遇到同样的问题,因为其他原因。

所以我解决了这样的问题:

  1. 找出两个firebase位置。在我的情况下,它在/opt/local/bin中是一个,在/Users/ME/.npm/bin中是另一个。所以你的位置可能和我的不同
  2. 我通过在每个相应的目录中执行firebase --version进行检查,看看哪一个有最新版本
  3. 然后我删除了旧版本,并将PATH添加到我的.bash_profile中的正确firebase中。所以我在export PATH="/opt/local/bin"之前添加了export PATH="/Users/ME/.npm/bin"

然后重新启动终端或执行source ~/.bash_profile,然后它就工作了!!

希望这能帮助到别人。

相关内容

  • 没有找到相关文章

最新更新