拦截到 npmjs.org 等的传出 HTTP 请求
Intercept outgoing HTTP requests to npmjs.org, etc
我希望在本地创建一个 运行 Node.js 服务器,它可以拦截对 NPM 注册表(npmjs.org 或其他)的传出请求。
这就是反向代理吗?
基本上,我想做的是在本地创建一个 运行 NPM 注册表 - 这是用于本地 运行 Docker 容器。通常我只会使用 npm link
进行本地开发。但是当在本地使用 Docker 测试库时,使用 npm link
变得很难甚至不可能
我知道有一些库可以设置本地 NPM 注册表,但我希望从头开始执行此操作,以便为我的用例进行设置。本质上,每次收到 npm install
请求时,我都想压缩存在于我的文件系统上的软件包。
我开始尝试:
npm config set registry http://localhost:3440
但是当我随后执行 npm install
时,它似乎没有访问我的本地 运行 服务器,只是像往常一样访问 registry.npmjs.org
。
我也试过修改/etc/hosts
之前:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
之后:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
registry.npmjs.org localhost:3440
但我的本地服务器监听端口 3440 似乎没有拦截任何流量。
那不是反向代理,而是正向代理。你实际上必须使用 npm config set proxy
从 npm 调用中使用它。
此类代理主要使用的工具通常是squid代理。而且我很确定您可以使用一些众所周知的转发代理工具而不是自定义 nodejs 工具来构建更强大和功能更全的服务。
然后您必须检查此服务的位置 运行(在同一个 docker 上?在另一个 docker 上?在您的主机上?)。您在 npm config set proxy
中为 npm 设置的地址必须可以从容器内部解析 运行 npm(但 Dockerfile 步骤中的命令 运行 和 Dockerfile 步骤中的命令 运行 之间的地址可能不同该构建之后的 bash 会话)。
我希望在本地创建一个 运行 Node.js 服务器,它可以拦截对 NPM 注册表(npmjs.org 或其他)的传出请求。
这就是反向代理吗?
基本上,我想做的是在本地创建一个 运行 NPM 注册表 - 这是用于本地 运行 Docker 容器。通常我只会使用 npm link
进行本地开发。但是当在本地使用 Docker 测试库时,使用 npm link
变得很难甚至不可能
我知道有一些库可以设置本地 NPM 注册表,但我希望从头开始执行此操作,以便为我的用例进行设置。本质上,每次收到 npm install
请求时,我都想压缩存在于我的文件系统上的软件包。
我开始尝试:
npm config set registry http://localhost:3440
但是当我随后执行 npm install
时,它似乎没有访问我的本地 运行 服务器,只是像往常一样访问 registry.npmjs.org
。
我也试过修改/etc/hosts
之前:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
之后:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
registry.npmjs.org localhost:3440
但我的本地服务器监听端口 3440 似乎没有拦截任何流量。
那不是反向代理,而是正向代理。你实际上必须使用 npm config set proxy
从 npm 调用中使用它。
此类代理主要使用的工具通常是squid代理。而且我很确定您可以使用一些众所周知的转发代理工具而不是自定义 nodejs 工具来构建更强大和功能更全的服务。
然后您必须检查此服务的位置 运行(在同一个 docker 上?在另一个 docker 上?在您的主机上?)。您在 npm config set proxy
中为 npm 设置的地址必须可以从容器内部解析 运行 npm(但 Dockerfile 步骤中的命令 运行 和 Dockerfile 步骤中的命令 运行 之间的地址可能不同该构建之后的 bash 会话)。