#4416·rxjs

符合标准的 ES 模块格式

作者: Buslowicz创建于 2018年12月11日更新于 2026年8月24日
标签feature

□ 特性请求 RxJS应采用符合标准(方便浏览)的ES模块格式。

说明你想要的解决方案 `essm5'和`` sm2015'接近于我们所需要的,但仍然远远没有达到标准。 首先,ES模块意味着浏览器绝对支持ES6,所以不需要"esm5"输出诚实. 接下来,QQesm2015格式仍然错过了".js"文件扩展名,没有这些扩展名,浏览器就不可能知道我们想要加载什么(它从字面上来说是像脚本src或cs链接一样工作,它需要指向确切的文件,浏览器不会检查多个位置,因为每次检查都有网络延迟成本). 此外,QQesm2015/Internal/Rx.js ' 文件有一堆基于Bare模块指定器(严格来说是Node.js分辨率系统,浏览器中不存在)的导入(rxjs-compat). 为了使格式符合标准,它需要指出在服务器上精确的文件.

** 说明你考虑过的备选办法** 到目前为止,处理该问题的唯一两种方法是让服务器重写路径或捆绑输出. 由于捆绑在制作上总是必须的,因此许多开发工作流程都不需要捆绑,因为捆绑只会减缓浏览器对变化的反应. 路径重写在飞行上, 但是只对自定义服务器有效 。 一些项目使用已有的工具并写出自定义逻辑只是使更多的代码可以维护,更不用提可能存在的bug会减缓开发. 最好还是从Cdn那里拿文件 并且不要在意以后的处理

这个问题已经在#2858和#3858中被提出,但到目前为止,这两个问题都被关闭并锁定为已解决(情况并非如此). 当时浏览器对ES Module的支持本可以降低,但此时,我们所有的主要浏览器都有默认启用的稳定执行功能,这使得80%以上的浏览器支持该功能(Node.js也支持它现在的旗下). 我认为支持这种格式应该是rxjs的高度优先事项.

P.S.在package.json'中添加模块'字段也将是上述内容的一个很好的补充.