代码在 ‣


痛苦之源

JavaScript 即可以运行在 Nodejs 中,也可以运行在 Browser 中。

模块规范有 CJS,也有 ESM、UMD 等等。

要让一个模块即可以在 Nodejs 中运行,也可以在 Browser 中运行,同时还要符合各种规范,中间还有 TypeScript 编译、Rollup 这种工具打包。感觉最开始写的,和最终生成的,过了几个路口,已经不知道回头路是什么了。

如果再遇到一个方法要可以「自动」在 Nodejs 中使用 Nodejs 的方法,在 Browser 中使用 Browser 的方法。就晕掉了!

我的探索

TS 虽然有 UMD 选项,但是却不起作用 - https://github.com/microsoft/TypeScript/issues/46442,所以这里使用的是 ‣(类似 rollup,但是更方便)

同时支持 Nodejs 和 Browser

package.json 中关于模块的部分

后记