簡體   English   中英

用於版本控制和縮小javascript的Maven插件

[英]Maven plugin for versioning and minifying javascript

單頁Javascript應用程序

我已經構建了一個復雜的ajax驅動的單頁webapp,它使用一個服務於JSON的RESTful后端Web服務。 javascript被分成許多不同的文件,每個文件代表某種特征或組件。

雖然該服務已經進行了alpha測試,但我只是在沒有縮小的情況下單獨提供所有這些文件。 但是現在我想推出測試版,我真的需要組合文件,縮小它們並對它們進行版本化。 我想使用Maven將其添加到我的構建過程中。

Javascript文件類型

我正在使用以下“類型”的javascript文件,其中#3和#4是我關注的問題:

  1. 外部文件,例如來自Google CDN的jquery和jquery-ui。 很少更改這些版本,可以手動處理。
  2. 我自己托管的Jquery插件,例如fullcalendar或ui-layout。 同樣,我很少將這些更新到新版本並可以手動處理它。
  3. 應用程序范圍的JavaScript代碼。 自定義javascript,分布在許多文件中,偶爾可以更改。 需要加載所有這些文件才能使應用程序正常工作。
  4. 特定於功能的JavaScript代碼。 在請求特定功能時按需加載的自定義JavaScript。 此代碼可能會頻繁更改,並且在啟動時不會加載。

建立目標

我想在構建過程中執行以下操作:

  • 將所有類型3的javascript文件連接在一起,縮小它們,並保存為具有版本號的單個文件。 例如: app-2.0.6.min.js ,其中2.0.6是maven項目版本。
  • 所有類型4文件應單獨縮小並保存為單獨的文件,版本號在名稱中。 例如: feature-abc-56ab32de29.min.js ,其中56ab32de29是該特定文件的版本號。
  • 使用<script>標記更新HTML文件以指向具有正確版本號的javascript文件。
  • 更新加載類型4功能javascript文件的Javscript文件以指向正確的版本。

問題

  • 是否有maven插件可以協助連接?

  • 有沒有maven插件可以幫助縮小? 理想情況下,我想使用Google Closure Compiler,但如果更簡單,可以與其他人合作。

  • 是否有maven插件可以幫助進行版本控制?

  • 有沒有辦法讓4型javascript文件具有獨立的版本號? 理想情況下,如果文件在版本2.0.5和2.0.6之間沒有變化,則用戶無需下載新版本,並且其緩存版本可以正常工作。 我正在使用GIT進行源代碼控制,那么有沒有辦法使用文件的GIT哈希碼進行版本控制?

  • 有沒有一種解決方案可以壓縮常規HTML文件中內聯的javascript而不會破壞HTML?

  • 是否有壓縮和版本化我的CSS文件的解決方案?

看看yuicompressor-maven-plugin 它可以聚合各種js(以及css)文件以及縮小和混淆它們。

這是一個全新的Maven插件,針對這項任務: http//mojo.codehaus.org/webminifier-maven-plugin/

我在Maven環境中成功地整合了RequireJS優化(使用Google Closure編譯器+進行連接)(對於單頁JS應用程序)。 有關詳細信息,請參閱我的問題和后續答案: Maven項目中的RequireJS編譯與外部JS依賴項

您可以將其擴展到版本並歸檔縮小的JS工件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM