当 node_modules 中存在循环依赖时,编译器会抱怨缺少依赖项。
原因是 out/cljs_deps.js 中 'goog.addDependency' 语句的顺序。
goog.addDependency("../node_modules/lib1.js", (链接: 'lib1'), (链接: 'lib2')); // 这行将失败,因为 'lib2' 尚未提供
goog.addDependency("../node_modules/lib2.js", (链接: 'lib2'), (链接: 'lib1'));
受影响的 node_modules 示例:apollo-client 1.9.2
我不确定这是否是 Closure 编译器的限制或明确不支持的功能,但这确实减少了可以使用 node_modules 包含的 node 包数量。
当前的解决方案是重写库代码以避免循环依赖,或者切换到 cljsjs。