热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用GoogleClosureDepsWriter生成JS依赖文件(二)

使用ClosureBuilder可以压缩JS文件,减小JS的大小。但是,当使用未压缩的源码时,需要使用到goog.require()来匹配

使用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-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&#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>

testGeneratedDependency.html

至此&#xff0c;DepsWriter的示例完成。

引用地址&#xff1a;https://developers.google.com/closure/library/docs/depswriter

 


转载于:https://www.cnblogs.com/jinlun/articles/5153323.html


推荐阅读
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
author-avatar
玉萍逸杰762_840
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有