Node-gyp 从互联网获取标头 – 由于防火墙规则不允许

问题描述 投票:0回答:2

我正在尝试在 docker 中设置一个简单的节点应用程序。该应用程序需要安装 npm 包 ibm_db。在 ibm_db 的安装中,node-gyp 想要从互联网下载标头文件,这在公司防火墙规则下是不允许的。使用代理下载 npm 包可以正常工作。

https://nodejs.org/download/release/v16.14.2/node-v16.14.2-headers.tar.gz failed, reason: unable to get local issuer certificate

我不确定这里的最佳前进方向。是否可以以某种方式手动安装 headers.tar?

node.js docker node-modules npm-install node-gyp
2个回答
1
投票

将您需要的特定版本的 node-{NODE_VERSION}-headers.tar.gz 文件提交到存储库中,然后执行以下操作:

echo "---> Set tarball"
NODE_VER=v16.13.1
npm config set tarball /{YOUR_PATH}/node-${NODE_VER}-headers.tar.gz

然后像平常一样继续进行 npm 安装。

https://github.com/nodejs/help/issues/3686#issuecomment-1011865975


0
投票

ezAZ 的答案对于以前版本的 npm 有效,但当前错误并显示以下消息:

npm 错误!

tarball
不是有效的 npm 选项

对我有用的是:

  1. 手动下载
    .tar.gz
    (例如:https://nodejs.org/download/release/v16.14.2/node-v16.14.2-headers.tar.gz在您的情况下)
  2. 奔跑
    npm i --tarball=/path/to/your/downloaded/file
© www.soinside.com 2019 - 2024. All rights reserved.