假设您正在使用具有多个外部库依赖项的javascript项目,并希望使用Google Closure Compiler以ADVANCED_OPTIMIZATIONS模式编译您的源代码。
由于在此模式下编译器会将代码调用重命名为外部库对象和函数,因此必须提供externs以防止重命名发生。
但是,手动生成externs需要做很多工作,那么,从给定的javascript lib自动生成适当的extern的最佳方法是什么?
答案 0 :(得分:6)
请参阅以下网址作为起点。我还建议在外部添加类型信息,以最大限度地提高编译器的效益。
答案 1 :(得分:0)
许多项目包含 TypeScript 风格的类型定义(即 index.d.ts)。这种格式不能直接在 Closure Compiler 中使用,但我发现这个工具可以自动将 .d.ts 转换为 extern。
https://www.npmjs.com/package/tsd2cce - 来自打字稿声明文件 (.d.ts) 的谷歌闭包编译器外部转换器。
用法
npx tsd2cce declaration.d.ts create_extern.js
答案 2 :(得分:-2)
您可以通过以下方式导出您的功能: window ['myFunc'] = myFunc;
这里有更多细节: http://code.google.com/closure/compiler/docs/api-tutorial3.html#no
如果您真的想要从其他地方导入的libs externs(即服务包装器,jquery等)那么你需要传递extern的地方 如果您使用的是teh jar编译器,则使用--externs,在上面的链接中指定更多细节