防止默认添加deps.js

时间:2017-04-20 16:02:26

标签: javascript google-closure-library

我正在尝试将谷歌关闭库用于我的网络应用程序的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甚至没有包括在内,我不知道该假设有什么影响一个应用。

2 个答案:

答案 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