如何包含谷歌关闭的依赖项

Tim*_*mmy 2 google-closure google-closure-library google-closure-compiler

我运行非常基本的文件:

goog.provide('test');

goog.require('goog.net.XhrIo');
goog.require('goog.json.Serializer');
goog.require('goog.dom');
goog.require('goog.ui.HoverCard');
goog.require('goog.positioning');
goog.require('goog.dom.dataset');
Run Code Online (Sandbox Code Playgroud)

但我明白了

test.js:3: ERROR - required "goog.net.XhrIo" namespace never provided
goog.require('goog.net.XhrIo');
Run Code Online (Sandbox Code Playgroud)

在编译时

java -d32 -client -jar compiler/compiler.jar --js compiler/closure-library/closure/goog/base.js --js test.js --warning_level=VERBOSE
Run Code Online (Sandbox Code Playgroud)

如何找到goog库?

编辑:

我也尝试使用在线版:http://closure-compiler.appspot.com/home并仍然获得:

    JSC_MISSING_PROVIDE_ERROR: required "goog.net.XhrIo" namespace never provided at line 3 character 0 in test.js
goog.require('goog.net.XhrIo');
^
JSC_MISSING_PROVIDE_ERROR: required "goog.json.Serializer" namespace never provided at line 4 character 0 in test.js
goog.require('goog.json.Serializer');
^
JSC_MISSING_PROVIDE_ERROR: required "goog.dom" namespace never provided at line 5 character 0 in test.js
goog.require('goog.dom');
^
JSC_MISSING_PROVIDE_ERROR: required "goog.ui.HoverCard" namespace never provided at line 6 character 0 in test.js
goog.require('goog.ui.HoverCard');
^
JSC_MISSING_PROVIDE_ERROR: required "goog.positioning" namespace never provided at line 7 character 0 in test.js
goog.require('goog.positioning');
^
JSC_MISSING_PROVIDE_ERROR: required "goog.dom.dataset" namespace never provided at line 8 character 0 in test.js
goog.require('goog.dom.dataset');
Run Code Online (Sandbox Code Playgroud)

Pau*_*per 5

重要的是要记住Google Closure是一系列工具.

尽管这些工具具有协同作用,但Google在这些工具之间保持了相当程度的独立性.Closure编译器可以在没有Closure库的情况下工作,Closure库可以在没有Closure Compiler的情况下工作.两者都可以在没有Closure模板等情况下工作

封装构建器Python脚本是为了提供Closure Compiler缺少的一些东西而制作和包含的.然而,现在你应该很少使用它们.

Closure Compiler最近允许使用通配符表达式来解决这个特殊问题.

java -d32 -client -jar compiler/compiler.jar \
    --closure_entry_point=test               \
    --only_closure_dependencies              \
    --warning_level=VERBOSE                  \
    compiler/closure-library/**
Run Code Online (Sandbox Code Playgroud)

compiler/closure-library/检查每个文件以查看它是否提供必要的命名空间.不包含任何其他文件(only_closure_dependencies).