小程序内部是否使用的是 CommonJS 模块规范?
想确认一下小程序内部是否使用的是 CommonJS 模块规范,从表现上看是。因为这涉及到循环依赖的处理。 现在我们代码中使用的 ES Modules,会被微信小程序转换成 CommonJS,这让循环依赖很难处理。CommonJS 中循环依赖一般需要使用动态 require 才能处理,我们就需要 import 与 require 混着用,很恼火。要么就需要全部使用 require 或者避免循环依赖,这些选项都不太理想。 ES Modules 的动态绑定让循环依赖更容易处理,所以微信小程序能不能提供一个选项,让开发者控制 runtime 阶段的模块规范(类似于 ES6 转 ES5 开关),比如在 runtime 阶段使用 ES Modules。