Javascript 如何在clojurescript中使用react apollo,从而在高级优化中生存?

Javascript 如何在clojurescript中使用react apollo,从而在高级优化中生存?,javascript,clojurescript,node-modules,google-closure-compiler,react-apollo,Javascript,Clojurescript,Node Modules,Google Closure Compiler,React Apollo,我正在构建一个clojurescript应用程序,它依赖于react apollo与第三方graphql API进行交互。由于我无法找到从外部加载库中所有依赖项的方法,所以我选择了npm安装它it,并让闭包编译器编译整个依赖项。由于ES6和CommonJS require/import的混合,一些js依赖项会混淆google closure编译器,这并不是现成的,需要使用fork和patch 通过高级优化,我只能在js调试器中查找重命名的属性后才能使事情正常工作。我确信我的外部文件并没有包含所有

我正在构建一个clojurescript应用程序,它依赖于react apollo与第三方graphql API进行交互。由于我无法找到从外部加载库中所有依赖项的方法,所以我选择了
npm安装它
it,并让闭包编译器编译整个依赖项。由于ES6和CommonJS require/import的混合,一些js依赖项会混淆google closure编译器,这并不是现成的,需要使用fork和patch

通过高级优化,我只能在js调试器中查找重命名的属性后才能使事情正常工作。我确信我的外部文件并没有包含所有内容。我还需要确保clojurescript中的所有属性都由字符串寻址,我认为graphql会根据查询中的字符串创建对象

使用字符串键时,像解构这样的事情不起作用。使用
js->clj:keywordizekeys true
和back转换对象似乎会重命名属性,除非我将每个关键字都添加到extern文件中

我尝试设置
*在推断时发出警告*
:推断外部程序
,但生成的外部程序只有很少的条目。不确定我是否用对了

高级优化似乎是必须的,它是461K对3MB的简单优化

TL;博士

尝试在cljs中使用npm库,但存在高级优化问题。使用这些LIB的最佳实践是什么