我正在尝试将谷歌关闭库用于我的网络应用程序的javascript。我在static
目录中有我的JS脚本以及闭包库:
static/
app.js
closure-library
使用闭包构建器将JS代码合并到一个脚本中:
static/closure-library/closure/bin/build/closurebuilder.py \
> --root=./static/closure-library/ \
> --namespace="pr" \
> --output_mode=script \
> --output_file=./static/app-calc.js static/app.js
后端在Go中。上面生成的脚本包含在HTML中:
<script src="/static/app-calc.js"></script>
但是,只要加载页面,就会在上述脚本标记之后将deps.js
添加到DOM:
<script type="text/javascript" src="deps.js"></script>
由于此文件的添加没有任何前面的路径,因此请使用当前应用程序URL浏览此文件。
有没有办法更改此行为或阻止添加deps.js
?
据我所知,由于整个库已合并为一个文件,因此不需要此文件。结束docs关于depswriter提及路径与base.js
相同,但由于base.js
甚至没有包括在内,我不知道该假设有什么影响一个应用。
答案 0 :(得分:1)
不推荐使用Closurebuilder,您应该直接使用闭包编译器。请参阅How to use Google Closure compiler,其中涵盖了您的许多问题。有关Managing Dependencies的Wiki页面包含最新详细信息。请注意,仍有很多关于闭包编译器的旧文档尚未更新,例如https://developers.google.com/closure/library/docs/closurebuilder。其中一些页面仍然相关,但其他页面已过时。 github上的wiki都是最新的。
现在只需要deps.js
文件进行调试,直接从源代码运行(不编译)。请参阅https://github.com/google/closure-compiler/wiki/Debugging-Uncompiled-Source-Code。
编译器将只能使用您正在使用的闭包库,并将其与您的代码结合使用。
答案 1 :(得分:0)
设置全局变量或全局对象属性&#34; CLOSURE_NO_DEPS&#34;为真。这将阻止base.js尝试加载deps.js文件。
详细信息可以在代码中找到: https://github.com/google/closure-library/blob/master/closure/goog/base.js#L19