使用ClosureBuilder 可以压缩JS文件,减小JS的大小。但是,当使用未压缩的源码时,需要使用到goog.require()来匹配需要的命名空间并且在页面中追加标签来加载需要的JS文件。
当使用的是ClosureLibrary中的命名空间时,ClosureLibrary默认为在deps.js去查找所需要的依赖。deps.js每一行记录着相应的命名空间和其所需要依赖以及与base.js的相对路径。
在这个示例中,我们将要学习如何使用DepsWriter来生成myproject的JS依赖文件及其使用方法。
准备:
1.使用Google Closure Library压缩JS文件(一) 中写好的start.js文件
2.DepsWriter.py
首先,在命令行窗口下进入Closure Libaray和myproject所在的目录,执行以下命令:
python closure/closure/bin/build/depswriter.py --root_with_prefix="myproject ../../../myproject" > myproject-deps.js
其中 --root_with_prefix是由工程名称和工程所在的路径组成。工程的路径是相对路径,相对于closure中的goog文件夹而言,具体需要向上返回几组目录,根据实际情况而定。
例如相对路径为“/”,则页面引用myproject-deps.js后,完整的路径为:“closure/closure/goog//start.js”,此时需要向中返回三级目录。
执行过命令后,将在myproject外生成的myproject-deps.js,内容为:
1 // This file was autogenerated by depswriter.py.
2 // Please do not edit.
3 goog.addDependency('../../../myproject/start.js', ['myproject.start'], ['goog.dom'], false);
'../../../myproject/start.js' 这是以base.js所在的文件夹生成的相对路径;
['myproject.start'], ['goog.dom'] 这是start.js中的命名空间及引用的命名空间
接着:把myproject-deps.js复制到myproejct文件夹下,新建一个testGeneratedDependency.html文件,引入base.js,myproject-deps.js,内容如下:
1 doctype html>
2 <html>
3 <head>
4 <script src&#61;"../closure/closure/goog/base.js">script>
5 <script src&#61;"myproject-deps.js">script>
6 <script>
7 goog.require(&#39;myproject.start&#39;);
8 script>
9 head>
10 <body>
11
12 <script>
13 myproject.start();
14 script>
15 body>
16 html>
至此&#xff0c;DepsWriter的示例完成。
引用地址&#xff1a;https://developers.google.com/closure/library/docs/depswriter