§RequireJS
根據 RequireJS 網站
RequireJS 是 JavaScript 檔案和模組載入器。它已針對瀏覽器內使用最佳化,但它也可以用於其他 JavaScript 環境… 使用 RequireJS 等模組化指令碼載入器將能提升您的程式碼速度和品質。
實際上,這表示你可以使用 RequireJS 將 JavaScript 模組化。RequireJS 透過實作稱為 非同步模組定義 的半標準 API 來達成此目的(其他類似概念包括 CommonJS )。使用 AMD 可以解析和載入 用戶端 上的 JavaScript 模組,同時允許進行伺服器端的 最佳化。對於伺服器端最佳化,模組相依性可以使用 UglifyJS 2 進行縮小和合併。
依慣例,RequireJS 預期有一個 main.js 檔案來引導其模組載入器。
§部署
RequireJS 最佳化器通常不會在執行部署時才開始運作,也就是說,在執行 start
、stage
或 dist
任務時才開始運作。
如果你在建置中使用 WebJars,那麼 RequireJS 最佳化器外掛程式也會確保從 WebJar 內部參照的任何 JavaScript 資源會自動從 jsdelivr CDN 參照。此外,如果找到任何 .min.js
檔案,則會使用它來取代 .js
。這裡的額外好處是你的 html 無需變更!
§啟用和設定
使用 PlayJava
或 PlayScala
外掛程式時,只要將外掛程式新增至 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 篩選器
在這個文件中發現錯誤?此頁面的原始程式碼可以在 這裡 找到。在閱讀 文件準則 後,請隨時提交拉取請求。有問題或建議要分享?請前往 我們的社群論壇,與社群展開對話。