![]() |
1
musi 11 天前
|
![]() |
3
Track13 11 天前
那你把 cdn 上的文件存储到本地不就可以了。😅
|
![]() |
6
songray 11 天前
这个问题已经存在很多年了,不管是源码还是编译脚本没有考虑过 ESM ,要改的话至少需要几个人一起着手,不是 AI 能干的。
https://github.com/facebook/react/issues/11503 https://github.com/facebook/react/issues/10021 更关键的一点是,React 几乎所有子模块都是 internal ,没法进行摇树,所以提供 ESM 也没啥意义,你为什么不用 UMD 或者 CJS ? |
![]() |
8
Radeon OP @Razio 整个互联网上没有一个 self-contained, 完整的 react.esm.min.js 。我问过 Grok 了,Grok 确认没有。只有 UMD 版本的。Grok 也同意难以置信
|
![]() |
10
songray 11 天前 ![]() @Radeon 那你自己用 rollup 把 cdn 上的 react.cjs 转一下就行了,不需要直接从源码 build esm 。
你可以参考一下我刚刚写的 demo 或者直接用 dist 文件夹下的产物。 https://github.com/Ray-D-Song/esm-react-transform |
![]() |
11
UnluckyNinja 11 天前 via Android ![]() https://github.com/esm-bundle/react 直接看看 esm.sh 怎么做的不就好了
|
![]() |
12
UnluckyNinja 11 天前 via Android
@UnluckyNinja #11 *这俩没关系,修正下措辞:直接照着 esm.sh 的做法改,或者看看其他 esm 重打包怎么做的
|
![]() |
13
Radeon OP @UnluckyNinja 问题是为什么要看 ESM 的步骤?不应该是 Meta/React 在 npm 包里提供步骤吗?
|
![]() |
14
pursuer 11 天前
怕污染可以 rollup 打包 AMD ,虽然我觉得污染影响不大?
顺便打广告,一个利用 AMD 实现前后端共用代码的框架 地址 https://github.com/partic2/pxseed-CorePackages |
![]() |
15
Radeon OP @pursuer UMD 有官方背书的 CDN ,是完整且 minified 的,不需要 AMD 版本。但是都 2025 年了,不应该默认提供 ESM 的完整 minified 的版本在 dist 目录下吗?难道诸君都不需要?
|
![]() |
18
Radeon OP @songray 感谢你的代码的提醒,不过我打算从官方背书的 UMD 版本( https://unpkg.com/react@18.3.1/umd/react.production.min.js )转。因为一是我用在浏览器环境里,不适合用 cjs ,另外这个 URL 是官方背书的
|
![]() |
19
pursuer 10 天前
@Radeon ESM 不能满足我的需要,我的目标是前后端使用同一套模块加载机制且足够灵活(比如支持通过 indexeddb 加载模块,在加载前预编译代码等),所以 ESM 的灵活性对我来说是不够的,而且 service worker 内不支持 dynamic import ,所以才做了 pxseed ,AMD 只需要 require,define,requirejs 3 个变量也还好
|
![]() |
20
UnluckyNinja 10 天前
@Radeon #13 其实我没太搞懂你的真正问题是啥,看上面的回复我以为你是要从现有的 cjs build 文件想办法弄一个 esm build 出来,但现在看来也不是。如果是吐槽 react 官方不作为,CRA 今年年初才终于从文档中移除,react 官方肯定不会在意这点。如果介意全局空间污染,但 2025 年介意空间污染的基本都在用构建工具了,也就不需要再去找 esm 的构建来引入了。
|
![]() |
21
Radeon OP @UnluckyNinja 主要是吐槽官方不作为。我只是想找一个像官方 UMD 版本 (react.production.min.js) 一样的 ESM 版本的 production.min.js 文件,但是整个东西方互联网都没有 (esm.sh 上的是 entry 文件,不是打包的)。我又想从 react/react-dom 的 npm 包自己来 build ,还是没有官方步骤
|
![]() |
22
UnluckyNinja 10 天前 ![]() @Radeon #21 可以试一下 vite 的库模式 https://cn.vite.dev/guide/build.html#library-mode
|