我正在尝试在 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-{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
ezAZ 的答案对于以前版本的 npm 有效,但当前错误并显示以下消息:
npm 错误!
不是有效的 npm 选项tarball
对我有用的是:
.tar.gz
(例如:https://nodejs.org/download/release/v16.14.2/node-v16.14.2-headers.tar.gz在您的情况下)npm i --tarball=/path/to/your/downloaded/file