ARTIFACTORY:如何从ARTIFACTORY下载node-pre-gyp预编译的二进制文件?
对于Node模块或包含Node模块的NPM包,我们使用人工存储库作为事实的单一来源。一些节点模块使用node-pre-gyp下载预编译的二进制文件。默认情况下,node-pre-gyp将尝试从外部资源(如github)下载这些二进制文件。本教程将利用node-pre-gyp的功能来从镜像下载二进制文件。在本例中,镜像将是一个JFrog Artifactory实例。
例如,有两种方法可以使用npm config参数从Artifactory下载二进制文件:
添加到.npmrc:
{module_name} _binary_host_mirror = http://artifactory.local: 8081 / {repo-name} /
或者使用$npm install运行:
$ NPM安装画布——canvas_prebuilt_binary_host_mirror=http://artifactory.local:8081/{repo-name}/
本文解释了如何使node-pre-gyp从Artifactory -下载画布预构建二进制文件
1.首先,使用Quick Setup特性创建由虚拟聚合的本地和远程NPM存储库。
2.用新创建的虚拟npm存储库替换默认的npm注册表。test-npm在本例中,执行如下命令:
$npm config set registry http://artifactory.local:8081/artifactory/api/npm/test-npm/
3.使用$npm login命令根据Artifactory对npm客户端进行身份验证。
美元npm登录
当出现提示时,输入Artifactory登录信息。
4.在使用美元npm安装使用Canvas命令安装node-canvas包,node-pre-gyp将尝试从https://github.com/下载预构建的二进制文件。例如,如果您无法访问github,因为您在防火墙后面,或者如果您只是想从Artifactory获取二进制文件,请按照以下步骤操作。
如果你没有访问github.com,你可以得到这样的错误信息:
npm犯错!node-pre-gyp info check检查了“/Users/valeriyp/node_modules/canvas/build/Release/canvas”。“节点”(未找到)
npm犯错!node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.9.0/canvas-v2.9.0-node-v102-darwin-unknown-x64.tar.gz
npm犯错!node-pre-gyp犯错!安装请求https://github.com/Automattic/node-canvas/releases/download/v2.9.0/canvas-v2.9.0-node-v102-darwin-unknown-x64.tar.gz失败,原因:读取ECONNRESET
5.例如,创建一个通用的远程存储库node-canvas-remote,它将用以下URL指向github:https://github.com/Automattic/node-canvas/releases/download/
*这只是一个基本url。不要尝试“测试”它,向该端点发送GET请求将导致404 not found错误。
**本文使用node-canvas作为示例。我们可能需要在Artifactory中为其他节点模块设置额外的远程仓库(每个模块的仓库)。
6.添加canvas_binary_host_mirror参数.npmrc文件:
$npm config set canvas_binary_host_mirror=http:// <用户名>:< API_KEY /密码> @artifactory.local: 8081 / artifactory / node-canvas-remote
7.运行安装画布canvas-v2.9.0-node-v102-darwin-unknown-x64.tar.gz将从Artifactory下载。
或者使用-canvas_binary_host_mirror =在美元npm安装命令:
$npm install canvas -canvas_binary_host_mirror =http:// <用户名>:< API_KEY /密码> @artifactory.local: 8081 / artifactory / node-canvas-remote
例如,在某些情况下,当使用自签名证书在客户机和Artifactory服务器之间启用TLS加密时,node-pre-gyp可能会遇到TLS证书问题。错误信息可能如下所示:
错误:证书链中的自签名证书
Node-gyp似乎没有使用npm证书设置。请设置或添加以下环境变量到您的.npmrc明确地将node-gyp指向您的CA证书:
设置证书文件(推荐)
设置NODE_EXTRA_CA_CERTS = / / /你/ cert.pem路径
绕过TLS验证(有风险!)
设置NODE_TLS_REJECT_UNAUTHORIZED = 0
