在安装firebase-tools时,尽管已安装NPM,NPM仍会继续发出依赖项警告

时间:2020-08-17 11:28:28

标签: firebase npm google-cloud-functions firebase-tools

通过在我的functions文件夹中运行命令firebase-toolssudo npm i -g firebase-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时,无论我在功能文件夹中运行安装命令sudo npm i -g firebase-tools多少次,它都会再次告诉我更新到8.7.0

╭───────────────────────────────────────────╮
│                                           │
│      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
}

1 个答案:

答案 0 :(得分:1)

最后我找到了问题。

显然,该问题发生了,因为我在计算机上安装了两个Firebase可执行文件。 因此,我更新的firebase与执行的firebase不同(因为路径不同且package.json不同)。

对我而言,发生这种情况是因为我将npm设置为从中国镜像服务器安装Firebase依赖项,这对LOT有所帮助(然后,我不需要VPN即可安装Firebase依赖项)。但是我忘记了两个firebase可执行文件。 Idk,但您可能会因其他原因而遇到相同的问题。

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

  1. 找出两个firebase位置。就我而言,它是/opt/local/bin中的一个,另一个是/Users/ME/.npm/bin中的一个。这样您可以拥有与我不同的位置。
  2. 我在每个对应的目录中进行了firebase --version的检查,以查看哪个具有最新版本。
  3. 然后,我删除了较旧的版本,并将PATH添加到了.bash_profile中正确的Firebase中。所以我在export PATH="/Users/ME/.npm/bin"
  4. 之前添加了export PATH="/opt/local/bin"

然后重新启动终端或执行source ~/.bash_profile即可正常工作!

希望这可以对某人有所帮助。