为什么 npm 会尝试安装 phantomjs?

why does npm tries to install phantomjs?

我找不到解决方案:我刚刚在我的 pi (raspian) 上设置了一个新的 Linux 发行版,并想用一个 npm 命令安装这些包:

npm install telegraf blocktrail-sdk http request cookie-parser express-ipfilter googleapis express body-parser cron firebase-admin

几秒钟后,我看到 npm 尝试安装一个名为 phantomjs 的包并以此错误消息结束:

npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130

> phantomjs@1.9.20 install /home/pi/node_modules/phantomjs
> node install.js

PhantomJS not found on PATH
Unexpected platform or architecture: linux/arm
It seems there is no binary available for your platform/architecture
Try to install PhantomJS globally

现在奇怪的是,当我尝试一个一个地安装这些包时:

npm install telegraf ... npm install blocktrail-sdk and the other ones

不需要安装phantomjs作为依赖。但它为什么要尝试安装它?我错过了什么?

任何帮助都会非常棒!谢谢!

phantomjs 包是您正在安装的 blocktrail-sdk 包的子依赖项。

$ npm ls phantomjs
`-- blocktrail-sdk@3.0.14
  `-- html-pdf@1.0.0
    `-- phantomjs@1.9.20

issuephantomjs 找不到 Linux/ARM 平台的二进制文件。

解决方法是克隆 blocktrail-sdk 存储库,从 package.jsondependencies 字段中删除 html-pdf,然后在本地安装:npm install "../path/to/blocktrail-sdk".