使用 Google Closure 编译器导出库中的 Javascript 符号

Export Javascript symbols in a library using the Google Closure Compiler

在使用 Google Closure Compiler 导出符号时,我遗漏了一些东西。我想要完成的是创建一个 Javascript 库并仅导出客户可以使用的那些函数。

文档说明对要导出的那些函数和属性使用@export 注释。但它还指出,您必须在它们自己的代码库中使用相同的方法签名定义 goog.exportSymbol 和 goog.exportProperty。例如:

/** @export */
var DoSomething = (function () {
});

goog.exportSymbol('DoSomething', goog.exportSymbol);

我下载了闭包库,它确实包含一个包含 goog.exportSymbol 函数的 base.js 文件。

但是如何包含 base.js?所有示例都显示它包含在网页中。但我不想要网页,编译器使用 javascript 代码而不是网页。

当使用 --generate_exports 标志时,编译器会为每次出现的 @export 添加适当的 goog.exportSymbolgoog.exportProperty 调用。这就是编译时必须包含符号的原因。

要在编译中包含 base.js,只需在传递自己的代码之前使用 --js 标志将其传递给编译器。这里没有什么神奇的东西 - 它只是一个 javascript 库。