unpkg 淘宝registry 不能使用的问题

以前修改过一个unpkg,可以支持本地私服部署,今天有一位网友在使用淘宝registry 的时候发现有问题,会有重定向的问题
造成不能使用

原因分析

尽管我们配置的是 registry.npmmirror.com 但是对于内容的下载npmmirror 会使用另外一个域名cdn.npmmirror.com 对于npm 的tar.gz
进行下载造成有问题(核心是node 的https 模块不支持重定向请求)

解决方法

目前解决方法很简单,使用了一个对于http 请求支持重定向处理的包follow-redirects,直接替换默认的https 模块就可以了

  • 参考代码
import https from 'https';
修改为
import {https} from 'follow-redirects';

docker 版本参考使用

  • docker-compose 文件
version: "3"
services: 
    unpkg:
      image: dalongrong/unpkg:http-env-v2
      environment: 
      - NPM_REGISTRY_URL=https://registry.npmjs.org
      ports: 
      - "8080:8080"

说明

目前docker镜像也已经push 到dockerhub 了,可以直接使用dalongrong/unpkg:http-env-v2,同时unpkg 原始代码也有一些调整,直接基于了
unpkg 最新的进行了修改,对于docker 镜像同时修改了基础镜像为node:18.19.1-alpine3.19,node 低版本有一个很大的安全问题

参考资料

https://github.com/rongfengliang/unpkg
https://www.npmjs.com/package/follow-redirects
https://hub.docker.com/repository/docker/dalongrong/unpkg/general
https://github.com/rongfengliang/unpkg/blob/master/modules/utils/npm.js#L2
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.11.1

posted on   荣锋亮  阅读(70)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-02-22 使用tmpfs 进行nginx proxy_cache 加速
2023-02-22 nodejs error:03000086:digital envelope routines::initialization error 问题
2022-02-22 几款开源git server ssh 协议forced command 参考格式
2022-02-22 基于golang+openssh 服务实现一个简单的git over ssh 服务
2021-02-22 dremio sql server 查询中文的问题
2021-02-22 规避dremio数据查询限制的一些方法
2020-02-22 docker 几个不错的镜像加速地址

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示