JavaScript 组件之旅(三):用 Ant 构建组件_javascript技巧
听起来是不是很惬意?Let's go! 我们出发啦~
这期,我们会使用 Ant 将上期编写、整理的代码文件按指定的先后顺序合并成单一的源文件,然后压缩这个文件。这是构建 JavaScript 项目的基本步骤。Ant 是 Apache 的一个顶级开源项目,网上对它的介绍和安装,已经有很多文章,这里就不再赘述了。在构建之前,我们先来看看已有的文件布局:
1 2 3 4 |
|
现在,我们要让它“丰满”起来:
- 组件根目录下添加:
- README: 介绍 Smart Queue 组件
- LICENSE: 组件的授权信息
- build.xml: Ant 使用的配置文件
- 组件根目录下添加 lib 子目录:存放构建过程中需要使用的外部程序和库文件
- lib 子目录下添加 yuicompressor.jar: 我们用 YUI Compressor 压缩 JavaScript
- 组件根目录下添加 test 子目录:存放测试组件所需的文件(下期介绍)
- src 目录下添加 intro.js: 介绍组件的版本及说明信息
麻雀虽小,五脏俱全。现在 Smart Queue 看上去像是比较专业的 JavaScript 项目了:
1 2 3 4 5 6 7 8 9 10 |
|
我们计划将构建出来的文件存放到组件根目录下的 build 子目录,还要通过构建工具创建并销毁它。首次尝试构建前,建议先大概了解一下 Ant 的配置文件——build.xml 的结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
仔细观察一下,除了 <font face="新宋体">name, description</font>
这些名字都很容易理解外,其他可以看到的规律包括:
-
<font face="新宋体">project</font>
元素的<font face="新宋体">default</font>
属性值对应某个<font face="新宋体">target</font>
元素的<font face="新宋体">name</font>
属性; -
<font face="新宋体">target</font>
元素的<font face="新宋体">depends</font>
属性值对应其他某些<font face="新宋体">target</font>
元素的<font face="新宋体">name</font>
属性; -
<font face="新宋体">${somename}</font>
可以引用<font face="新宋体">property</font>
中定义的值。
下面我们开始写自己的 build.xml.
首先,配置项目的基本信息,以及相关目录名称,将要使用的编码等等:
1 2 3 4 5 6 7 |
|
接着,定义一个用于初始化的 <font face="新宋体">target</font>
, 它负责创建 build 子目录:
1 2 3 |
|
然后定义名为 <font face="新宋体">concat</font>
的 <font face="新宋体">target</font>
, 负责将 src 里的 3 个 JavaScript 文件按先后顺序连接起来。运行它要先运行前面定义的 <font face="新宋体">init</font>
:
1 2 3 4 5 |
|
这样,就可以得到一个可以工作的 JavaScript 文件,下面的 <font face="新宋体">target</font>
负责压缩这个文件,显然它依赖于 <font face="新宋体">concat</font>
, 也依赖于 <font face="新宋体">init</font>
, 但是不必显式指定对 <font face="新宋体">init</font>
的依赖——Ant 能处理这种依赖关系。这里调用 YUI Compressor 并传入适当的参数:
1 2 3 4 5 |
|
大功告成,<font face="新宋体">compress</font>
处理后的文件就可以部署到生产系统上去了。最后我们做一下清理工作,使你在生成文件后还可以回到最初的状态:
1 2 3 |
|
到此可以说基本的配置就写完了。怎么使用它呢?以命令行方式进入到组件根目录(或者说 build.xml 所在的目录),然后:
- 运行
<font face="新宋体">ant concat</font>
, 将得到 ./build/smart-queue.source.js - 运行
<font face="新宋体">ant</font>
, 将选择<font face="新宋体"><project></project></font>
中<font face="新宋体">default</font>
引用的那个<font face="新宋体">target</font>
, 即<font face="新宋体">compress</font>
, 所以会得到 ./build 下的 smart-queue.source.js 和 smart-queue.js - 运行
<font face="新宋体">ant clean</font>
, 将删除 ./build 目录,回到最初的状态
这些前提是你已经正确安装或者说设置好了 JDK 和 Ant, 如果有错误提示出来,则可能需要检查它们是否已准备妥当。
一路看下来,是不是觉得本期介绍的东西很简单?那是当然了,构建工具就应该简单易用,否则把大量的时间花在那上面岂非不值?工具的价值在于提升生产力,从而创造更多价值。
最后,你可以在这里查看 Ant 的帮助文档(里面有很多好玩的东东哦),也可以在这里查看本期完整的 build.xml 文件。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節點。這個方法需要兩個參數:要插入的新節點和參考節點(即新節點將要插入的位置的節點)。

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務
