文件

§RequireJS

根據 RequireJS 網站

RequireJS 是 JavaScript 檔案和模組載入器。它已針對瀏覽器內使用最佳化,但它也可以用於其他 JavaScript 環境… 使用 RequireJS 等模組化指令碼載入器將能提升您的程式碼速度和品質。

實際上,這表示你可以使用 RequireJS 將 JavaScript 模組化。RequireJS 透過實作稱為 非同步模組定義 的半標準 API 來達成此目的(其他類似概念包括 CommonJS )。使用 AMD 可以解析和載入 用戶端 上的 JavaScript 模組,同時允許進行伺服器端的 最佳化。對於伺服器端最佳化,模組相依性可以使用 UglifyJS 2 進行縮小和合併。

依慣例,RequireJS 預期有一個 main.js 檔案來引導其模組載入器。

§部署

RequireJS 最佳化器通常不會在執行部署時才開始運作,也就是說,在執行 startstagedist 任務時才開始運作。

如果你在建置中使用 WebJars,那麼 RequireJS 最佳化器外掛程式也會確保從 WebJar 內部參照的任何 JavaScript 資源會自動從 jsdelivr CDN 參照。此外,如果找到任何 .min.js 檔案,則會使用它來取代 .js。這裡的額外好處是你的 html 無需變更!

§啟用和設定

使用 PlayJavaPlayScala 外掛程式時,只要將外掛程式新增至 plugins.sbt 檔案,即可啟用 RequireJS 最佳化。

addSbtPlugin("com.github.sbt" % "sbt-rjs" % "2.0.0")

若要將外掛程式新增至資源管線,你可以宣告如下(假設管線只有一個外掛程式,需要時再將其他外掛程式新增至序列,例如摘要和 gzip):

pipelineStages := Seq(rjs)

提供 RequireJS 最佳化器的標準建置設定檔,應足以應付大多數專案。不過,請參閱 外掛程式文件,以取得如何設定外掛程式的相關資訊。

請注意,RequireJS 會執行大量工作,雖然在 Trireme 的 JVM 內執行時可以正常運作,但從效能的角度來看,最好使用 Node.js 作為 js 引擎。為方便起見,您可以在 SBT_OPTS 中設定 sbt.jse.engineType 屬性。例如在 Unix 上

export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"

請參閱 外掛程式文件,以取得如何設定外掛程式的相關資訊。

下一步:內建 HTTP 篩選器


在這個文件中發現錯誤?此頁面的原始程式碼可以在 這裡 找到。在閱讀 文件準則 後,請隨時提交拉取請求。有問題或建議要分享?請前往 我們的社群論壇,與社群展開對話。