• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
夜幽儿
静若止水,看透本质!
   首页    新随笔    联系   管理    订阅  订阅

使用Google Closure DepsWriter生成JS依赖文件(二)

使用ClosureBuilder 可以压缩JS文件,减小JS的大小。但是,当使用未压缩的源码时,需要使用到goog.require()来匹配需要的命名空间并且在页面中追加<script>标签来加载需要的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-deps.js

  '../../../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="../closure/closure/goog/base.js"></script>
 5     <script src="myproject-deps.js"></script>
 6     <script>
 7       goog.require('myproject.start');
 8     </script>
 9   </head>
10   <body>
11     <!-- content -->
12     <script>
13       myproject.start();
14     </script>
15   </body>
16 </html>
testGeneratedDependency.html

至此,DepsWriter的示例完成。

引用地址:https://developers.google.com/closure/library/docs/depswriter

 

Restarting......自我完善中.............
posted @ 2016-01-23 22:32  夜幽儿  阅读(653)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3