Skip to content

2.0.11

Choose a tag to compare

@imaegoo imaegoo released this 28 Sep 04:26
95c2835

修复

  • pushoo 的 CommonJS 入口指向不存在的文件(#1202,修复 #1194):包内 package.json 的 main 与 exports["."].require 指向 ./dist/index.cjs,而构建产物其实是 dist/index.js(CJS)。于是:

    Error: Cannot find module '.../node_modules/pushoo/dist/index.cjs'
    

    ESM 侧走 exports.import → .mjs,一直是好的,所以这个问题藏在 2.0 系列每一个已发布的版本里(从 2.0.0-beta.1 到 2.0.10)。

    根因是入口字段与产物扩展名契约不符:非 type: module 的包,CJS 侧固定输出 .js(.cjs 只属于 type: module 的包,用于与 ESM 侧 .mjs 区分)。pushoo 是全仓唯一没按该契约写的包,现已改正。

    升级到 2.0.11 即可恢复 require("pushoo")(require("pushoo").default / .notice 均已验证可用);在此之前请改用 import("pushoo")。

变更

  • npm 可见性 gate 的超时从 10 分钟提到 1 小时(#1201):发布成功后 npm 还可能继续跑自动化审查(包页版本历史显示 Validating),其间版本对外不可见。2.0.10 的 @twikoojs/edgeone-makers(7.4 MB 单文件包,内联了完整实现)就是这样 —— 10 分钟超时先到、gate 判失败,导致它下游的 Docker 镜像 / SEA 产物 / 文档站后端重建三个收尾 job 全被跳过(该版本实际在发布约 13 分钟后才通过审查)。现在 gate 等 1 小时,并改为墙钟计时:此前按「累计 sleep 秒数」计数,而每轮还要跑 10 次 npm view,实际等待时长比配置值长约 50%,配置值与体感对不上。

  • 新增发布包入口契约守卫(#1202):packages/tsdown-config/test/entry-points.test.ts 对全部非 private 包断言三条 —— 入口扩展名符合产物扩展名契约、声明的入口文件真实存在、入口被 files 白名单覆盖。这类错误以前要到用户装包之后才暴露。

Full Changelog: 2.0.10...2.0.11