gpt4 book ai didi

node.js - 我可以将 npm 设置为使用 .pac 文件吗?

转载 作者:搜寻专家 更新时间:2023-10-31 22:52:53 24 4
gpt4 key购买 nike

我正在尝试为 npm (nodejs) 设置私有(private)注册表,但我不想复制整个公共(public)数据库。我看过有关如何执行此操作的帖子,但是,即使我采用这种方法,我也会遇到另一个问题。我的工作站在 VPN 后面,所以我需要在 NPM 中设置代理,以便能够从公共(public)注册表中获取模块。如果我创建我的私有(private)注册表,它将位于公司 VPN 中(使其可公开访问不是一种选择)。这意味着我不需要代理来访问我的私有(private)注册表,但正如我之前所说,我确实需要它来访问公共(public)注册表。我从 git 获得了 NPM 的代码,但在修改它之前,我想我只想问一下,有人知道如何解决这个问题吗?我知道您可以在运行 npm install 时指定注册表和代理,但我希望能够只运行 npm install。有没有办法将 pac 文件应用于 npm?除了修改源代码,我还能做些什么吗?

最佳答案

我确实遇到了这个问题。我们在私有(private) npm 注册表前设置了一个 nginx 代理。我们在 404 上创建了一个回退到全局 npm 注册表。

因此,在执行 npm 安装时,我们只需指定 nginx 代理,如果找到,它将负责从私有(private)注册表提供包,如果没有,则从全局注册表提供包。

这是您可以使用的 nginx 配置:

server {
listen 80 default_server;

location ~ ^/registry/*/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

proxy_pass http://private_npm_upstream;
proxy_intercept_errors on;
error_page 404 = @fallback-2;

proxy_redirect off;
}
location @fallback-2 {
access_log /var/log/nginx/global_npm.access.log;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host registry.npmjs.org;
proxy_set_header X-NginX-Proxy true;

proxy_pass http://registry.npmjs.org;
proxy_redirect off;
proxy_intercept_errors on;
}
}

upstream global_npm_upstream {
server registry.npmjs.org;
}

upstream private_npm_upstream {
server 127.0.0.1:5984;
}

关于node.js - 我可以将 npm 设置为使用 .pac 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15662878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com