2017-04-20 133 views
1

我正在尝试为我的web应用程序的javascript使用google封闭库。我在static目录我的JS脚本关闭库一起:防止默认添加deps.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 

后端是围棋。上面生成的脚本包含在HTML为:

<script type="text/javascript" src="deps.js"></script> 

由于此文件是未添加:

<script src="/static/app-calc.js"></script> 

然而,一旦加载页面时,deps.js是上面的脚本标签后添加到DOM任何前面的路径,浏览器使用当前应用程序的URL来加载这个脚本。

有什么方法可以改变这种行为或防止添加deps.js? 据我所知,由于整个图书馆已合并成一个单一的文件,应该不需要这个文件。封面docs约depswriter提到路径与base.js相同,但由于base.js甚至没有包括在内,我不明白这是如何有任何影响应用。

回答

1

Closurebuilder已被弃用,您应该直接使用闭包编译器。见How to use Google Closure compiler其中涵盖了你的许多问题。关于Managing Dependencies的维基页面有最新的详细信息。请注意,还有很多关于闭包编译器的旧文档没有被更新,例如https://developers.google.com/closure/library/docs/closurebuilder。其中一些页面仍然相关,但其他页面已过时。 github上的wiki都是最新的。

deps.js文件现在只需要在调试时直接从源代码运行(无需编译)。见https://github.com/google/closure-compiler/wiki/Debugging-Uncompiled-Source-Code

编译器将能够只采用你正在使用的闭包库并将其与你的代码结合起来。

+0

我尝试使用编译器与'--dependency_mode'标志。 'deps.js'仍然显示。 – abhink

+0

你可以显示你正在使用的完整编译命令吗?你是什​​么意思“deps.js仍然显示”?据我所知,生成'deps.js'的唯一方法是使用诸如'depswriter.py'或'closurebuilder.py'这样的Python脚本 - 你仍然在使用这些脚本吗?你也可以显示更多的目录结构:源文件在哪里,编译输出的位置? – owler