Javascript Google闭包编译器中的共享多边形填充

Javascript Google闭包编译器中的共享多边形填充,javascript,google-closure-compiler,transpiler,Javascript,Google Closure Compiler,Transpiler,我正在尝试实现以下用例: 我的代码库被分成3个JavaScript文件:A、B和C 文件B和C都依赖于文件A(这意味着它们是在A中声明的调用方法) 所有文件均使用ES2015(ES6)代码 我正在使用Google闭包编译器将它们传输到ES5并缩小它们。以下配置的NPM模块谷歌闭包编译器可以很好地工作: default: { files: { "A.min.js" : "A.js", "B.min.js" : "B

我正在尝试实现以下用例:

  • 我的代码库被分成3个JavaScript文件:A、B和C
  • 文件B和C都依赖于文件A(这意味着它们是在A中声明的调用方法)
  • 所有文件均使用ES2015(ES6)代码
我正在使用Google闭包编译器将它们传输到ES5并缩小它们。以下配置的NPM模块
谷歌闭包编译器
可以很好地工作:

default: {
            files: {
              "A.min.js" : "A.js",
              "B.min.js" : "B.js",
              "C.min.js" : "C.js",
            },
            options: {
                compilation_level: "SIMPLE",
                language_in: "ES6_STRICT",
                language_out: "ES5_STRICT"
            }
        }
但我想优化它。上述配置导致闭包编译器在需要时将相同的polyfill“注入”到所有3个文件中(例如,如果A和C使用WeakMap,则A.min和C.min都包含WeakMap的polyfill)


我的问题是,有没有一种方法可以强制编译器只在一个数组中放置公共多边形填充?类似于如果B或C使用WeakMap,那么如果A使用WeakMap,则将polyfill放入A。如果A不使用WeakMap,则将polyfill放入B和C,就像往常一样?

最好的选择是使用编译器的代码拆分功能进行单个编译。然后,应仅将多边形填充注入基础文件。有关示例,请参见

如果要继续使用单独的编译,有两个非公开的标志可以提供帮助: