简单来讲就是希望 url 不变,但是在内网请求的时候自动转发到内网的缓存服务器上。关键是透明代理缓存,也就是不改变 npm 仓库的地址。
想过方案,第一个就是 dns 直接解析到缓存服务器上,但缓存服务器就不能用域名代理访问 npm,只能自己解析之后再请求。而且 dns 解析不能解析到某个特定端口,折腾起来也很费劲。
第二个就是类似于科学上网的办法,但是更折腾,而且我的路由器似乎不支持开两个科学上网。
大家有啥更好的方法么?
1
tt0411 2020-05-08 09:56:55 +08:00
不改变 url 很难, 因为现在的包管理仓库基本都是 https 了, 如果想通过缓存服务器直接返回内容, 就必须让客户端信任自定义 CA 证书, 这个成本通常比改变 url 要高很多 (安全风险也增加很多)
|
2
rockyou12 2020-05-08 10:04:12 +08:00
改 npm 地址比较好,因为像 nexus 这些仓库本来就带代理缓存功能,也可以通过 group 功能把公共仓库和私有库合并在一个虚拟的 group repo 下
而且上面也说了,你不改 url 证书这块很麻烦,不好处理 |
5
otakustay 2020-05-08 11:31:22 +08:00
缓存服务器单独给它个 DNS 配置就好了呗,114 都行
|
6
azh7138m 2020-05-08 11:42:10 +08:00 via Android
http 下可以自己劫持自己
https 下可以自己中间人自己 (我要告诉你老板,你又在划水了 |
7
unhappy224 2020-05-08 14:25:19 +08:00
没必要吧,不想全局配置 url 的话可以在项目里面加一个.npmrc
|
8
XGHeaven OP @unhappy224 主要有些个人的项目不止在内网(家里)开发,有时在公司抽空也会写两下。所以不想改地址。
|
9
mgrddsj 2020-05-08 14:57:28 +08:00 via Android
参考 steamcache, lancache, qcacher.
|