网易首页 > 网易号 > 正文 申请入驻

一行代码没写,他用AI造出2MB包管理器

0
分享至

一个27年工龄的软件工程师,做了一款JavaScript包管理器,全程没写、甚至没读过一行代码。项目叫jpm,能在npm、pnpm、yarn和bun项目里跑。更离谱的是,他让AI自己写了TLS、crypto和http模块,只为了把体积压小。第一个版本,一个下午就完工了。


他自己说得很直白:那个状态下,他不该信它,别人也不该信它。真正让jpm变得可信的,是后面那五天。

事情的起点是一档YouTube播客。主持人Wes、Scott和CJ在节目开头聊到upm,一款用JavaScript写的、又快又小的包管理器。他第一反应是"小"这个说法站不住——你总得带上Node.js运行时。upm的作者Pooya是JavaScript生态里公认的好工程师,做了一堆好工具,想做得比他更快并不容易。但当时他正在用Opus 5.5,被这个模型的表现震到了。既然那么多工具都用Rust重写,播客里甚至拿这事开玩笑,那不如自己也用Rust做一款又小又快的包管理器。

那天下午忙完本职工作,他开了个终端标签页,问Claude:把upm重写成Rust CLI需要做什么。看完方案摘要点了头,AI就开工了。大约45分钟,一个能跑的版本出来了,用了一堆第三方Rust crate,体积偏大,而且只在一个很小的package.json文件上测过。为了瘦身,他让AI拆解体积来源,到当晚结束时,jpm有了自研的HTTP、JSON、crypto和TLS模块,二进制小了一大截。他给AI的指令是:只写需要的部分,但要用别的项目的测试或自己的模糊测试狠狠测。

接下来是"氛围编程"玩家们集体略过的那部分。当时它只在Windows WSL2的Linux上、对着一个小package.json跑通过,Mac没测,Windows没测,大项目一个没碰。于是他让AI写了个加固脚本,拿100个、后来加到166个大型公开项目来试:先用jpm安装并构建,再用这些项目原本用的包管理器装一遍做对比,能跑测试的连测试一起跑。Windows命令行和PowerShell各来一遍,Mac上另开一个agent做同样的事。五天后,结果是261个合并的PR,和一个被反复锤炼过的包管理器。

他没写代码,但做了大量细小的决策。Claude说更快的锁文件格式只能省几毫秒,他还是要求改。Claude想把全局store做成可选功能,他反问:如果99%的包都能用,为什么要可选?于是它成了默认。他还要求,除非明确列在白名单里,否则不许运行脚本,包括依赖的安装脚本——理由是AI现在干了大部分活,批准一个包的脚本前,先让AI审一遍就行。

有两次Claude当面反驳他,两次他都坚持己见。

第一次是TLS。他想把二进制做小,TLS和crypto的crate占了大头。Claude说,这是你永远不该自己写的代码。他回了一句:那是老派的工程思维。现在用的是Rust,Heartbleed那类内存漏洞从根上就不存在,自研版本照样能往死里测。Claude承认自己夸大了风险,并列出能证明它的测试套件:Wycheproof、NIST vectors、x509-limbo、BoGo。他至今仍怀疑这个决定是否明智,也清楚Claude有讨好用户的倾向,说"夸大了风险"可能只是顺着他说。但它确实通过了一堆测试,包括用其他项目真实bug构造的用例。

第二次是HTTP/2。他想要更快的速度。Claude先用curl测了一遍,说没必要做——jpm整个HTTP/1.1安装流程,已经比curl单次HTTP/2下载还快。他还是推。理由是curl要应付所有情况,而jpm只需要对同一个registry发大量GET请求。Claude同意了,两小时后一个能用的客户端就出来了。

然后他们开始测。在他家宽带上,HTTP/2快约17%。在GitHub的runner上,打平或更慢,冷启动装nuxt时最多慢2倍,处理大tarball时CPU多用8%到15%。CI才是安装真正烧时间和钱的地方,而且它让二进制多了60KB。于是他让AI把那3671行全删了。这一局他错了,数字说了算。

也有反过来的情况。jpm可以顺手帮你装Node,他本来想把Node的签名校验藏在开关后面,觉得会拖慢安装。Claude测出来只要15到19毫秒,并说开关意味着没人会打开它。现在它默认开启,他觉得挺好,多了一层安全。

凭什么信一段没人打过的代码?他的答案很具体:Wycheproof、node-semver、pnpm、yarn和bun自己的测试,加上那166个仓库。过程中揪出来的问题包括:

  • node-semver自己的测试发现25处jpm判断不一致,比如把^9007199254740991.0.0当成合法范围接受。
  • npm-package-arg的测试一开始只匹配154个用例中的117个,a@a.tar.gz被读成了tag。
  • 一次安全扫描发现,克隆仓库里的.npmrc能把你的registry token通过它自己的代理发出去,概念验证抓到了Bearer USER-SECRET-TOKEN。现在项目的.npmrc不能再降低安全性。
  • 在真实仓库上,jpm与pnpm安装结果不一致的依赖链接从1320降到183,与npm的从614降到14。
  • 在测macOS之前,它压根编译不过。

他也清楚,干了这么多年,无论怎么测,没有软件是没有bug的。信任是挣来的,所以他打算在所有项目里用jpm,也愿意处理修复,包括AI提交的PR。但这不代表照单全收——修复必须带测试证明。他不打算关掉PR通道,但会用AI来帮忙审。

目前jpm的可执行文件是2MB,不总是最快,但排在最前面那一档。安全性也是它的卖点之一:不批准就不跑脚本,包不满一天不升级到最新版,以及围绕.npmrc的那套防护。

他也坦白了短板。基准测试规模很小,只有三个仓库,而且它并非永远最快。Windows上装nuxt,Defender扫描把它拖得很惨;macOS上nuxt的热安装,bun和aube赢。如果速度是终极目标,还有改进空间。他们确实在Linux、macOS、Windows上跑了166个项目的安装,Linux上还额外跑了一堆随机项目找bug,但没有在CI和真机上对每一个做性能测试。

jpm完美吗?不完美。他手写27年的东西也不完美,任何人写的都不完美。完美不存在。有的是"够用"、"很好",和"测到你知道自己处在哪一档"。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
沉默45年,中国终于迎来第二轮“严打”!目标改变总体战正式打响

沉默45年,中国终于迎来第二轮“严打”!目标改变总体战正式打响

闻识
2026-05-04 08:59:03
连续三年,闯进中网决赛者,来年必夺大满贯冠军

连续三年,闯进中网决赛者,来年必夺大满贯冠军

网球之家
2026-10-17 22:53:10
斯诺克重燃战火!5大TOP16首日登场,赵心童率中国14人参赛,剑指破荒?

斯诺克重燃战火!5大TOP16首日登场,赵心童率中国14人参赛,剑指破荒?

刘姚尧的文字城堡
2026-10-18 08:21:02
狠话炸锅!小泽一郎痛骂高市早苗:她本人,就是日本最大外交障碍

狠话炸锅!小泽一郎痛骂高市早苗:她本人,就是日本最大外交障碍

纯白的梵唱
2026-10-18 07:11:27
四川省人民医院攻克世界级难题:毫米修肺,让57岁患者重获新生

四川省人民医院攻克世界级难题:毫米修肺,让57岁患者重获新生

封面新闻
2026-10-17 00:01:05
李泽新、宁格夫妇,捐1亿

李泽新、宁格夫妇,捐1亿

新京报政事儿
2026-10-15 16:26:03
官宣!威廉姆斯和法拉利、麦克拉伦坐一桌

官宣!威廉姆斯和法拉利、麦克拉伦坐一桌

五星体育
2026-10-17 18:00:01
大批人“出逃”新加坡回中国避霾,机票暴涨近3万/张?!全岛停工停课最新安排来了...

大批人“出逃”新加坡回中国避霾,机票暴涨近3万/张?!全岛停工停课最新安排来了...

新加坡万事通
2026-10-17 21:00:14
全红婵不对劲,不是她以后不比赛了,而是她今年19岁了,居然开始了自己的精致路线

全红婵不对劲,不是她以后不比赛了,而是她今年19岁了,居然开始了自己的精致路线

LULU生活家
2026-09-30 20:32:43
为何新疆女子很少嫁到内地,本地姑娘说了大实话,确实很尴尬!

为何新疆女子很少嫁到内地,本地姑娘说了大实话,确实很尴尬!

观史搜寻着
2026-10-15 00:41:25
黄磊现身乌镇戏剧节,回应“没能减肥成功”:我已经55岁了,胖一点也很正常

黄磊现身乌镇戏剧节,回应“没能减肥成功”:我已经55岁了,胖一点也很正常

极目新闻
2026-10-16 20:55:58
净利润1300亿,长鑫科技的财报配得上3.1万亿的市值吗?

净利润1300亿,长鑫科技的财报配得上3.1万亿的市值吗?

媒体训练营
2026-10-17 19:19:32
扛不住了?延迟退休实施至今,一个尴尬的问题终于暴露出来了

扛不住了?延迟退休实施至今,一个尴尬的问题终于暴露出来了

铭记历史呀
2026-09-19 16:18:25
反差巨大!裁判本戈埃切亚执法皇马、巴萨红牌数据曝光,巴萨对手 11 红,皇马本方 5 红!

反差巨大!裁判本戈埃切亚执法皇马、巴萨红牌数据曝光,巴萨对手 11 红,皇马本方 5 红!

福酱的小时光
2026-10-18 06:06:33
煤炭价格突破1000元/吨 多家煤企净利润大幅飙升

煤炭价格突破1000元/吨 多家煤企净利润大幅飙升

中国经营报
2026-10-17 23:58:33
大阪街头埃尔法贴着:车内有中国人……

大阪街头埃尔法贴着:车内有中国人……

日本物语
2026-09-12 20:36:48
原形毕露!特朗普全网暴涨的民意,原来全是俄罗斯服务器刷的假象

原形毕露!特朗普全网暴涨的民意,原来全是俄罗斯服务器刷的假象

老马拉车莫少装
2026-10-17 12:51:20
“你把大家的路都堵死了!”高校拒绝专科生考研,男生成众矢之的!

“你把大家的路都堵死了!”高校拒绝专科生考研,男生成众矢之的!

林林先生
2026-10-14 16:29:12
维尔茨交出亮眼表现,却依然是利物浦幸福的烦恼

维尔茨交出亮眼表现,却依然是利物浦幸福的烦恼

中场哨
2026-10-18 08:33:05
朱立伦出手,张善政出手,国民党中央重磅决定,赵少康没事了?

朱立伦出手,张善政出手,国民党中央重磅决定,赵少康没事了?

DS北风
2026-10-17 09:22:04
2026-10-18 09:11:00
摸鱼算法
摸鱼算法
致力于用最前沿的AI技术,换取更多发呆时间的三十岁青年。
208文章数 74关注度
往期回顾 全部

科技要闻

刘煜辉:99%的黄金分析师报告一钱不值

头条要闻

牛弹琴:法国又"燃烧"了 整个国家地图上到处都在冒烟

头条要闻

牛弹琴:法国又"燃烧"了 整个国家地图上到处都在冒烟

体育要闻

升级版杨瀚森再闯难关:当上开拓者第三中锋还得拼

娱乐要闻

庾澄庆罕谈前妻 撕下伊能静仅剩的体面

财经要闻

新一轮大跌源头,找到了!

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

教育
亲子
时尚
艺术
手机

教育要闻

小学都这么卷吗?大学生也未必解得出吧

亲子要闻

炸鸡排摊前老板一声好嘞,藏着多少烟火气

秋天衣服要越买越精,准备好这“三衣”,简单舒适又有品味

艺术要闻

美到窒息!黛安笔下的午后“印象”,明媚又温柔,看完心情都亮了!

手机要闻

苹果零售员工被要求劝阻顾客现场抢购 iPhone Duo 首发库存或极度紧张

无障碍浏览 进入关怀版