Sails 內建的資源管線是一組 Grunt 任務,這些任務配置了傳統預設值,旨在使您的專案更一致且更有效率。整個前端資源工作流程是完全可自訂的,同時也提供了許多開箱即用的預設任務。Sails 讓您能夠輕鬆配置新任務以符合您的需求。
以下列出 Sails 預設 Grunt 設定的一些功能
以下列出新 Sails 專案中預設包含的 Grunt 任務
此 Grunt 任務配置為清除 Sails 專案中
.tmp/public/
目錄的內容。
建立獨特的雜湊值並將其添加到檔案名稱末尾,以實現快取失效。
合併 JavaScript 和 CSS 檔案,並將合併後的檔案儲存在
.tmp/public/concat/
目錄中。
dev task config
將 sails assets 資料夾中的所有目錄和檔案(coffeescript 和 less 檔案除外)複製到
.tmp/public/
目錄中。
build task config
將 .tmp/public 目錄中的所有目錄和檔案複製到 www 目錄中。
壓縮 CSS 檔案並將其放入
.tmp/public/min/
目錄中。
將 LESS 檔案編譯為 CSS。僅編譯
assets/styles/importer.less
。這讓您可以自行控制順序(例如,在其他樣式表之前導入您的依賴項、mixin、變數、重置等)。
自動注入 JavaScript 檔案的
<script>
標籤和 CSS 檔案的<link>
標籤。還會自動連結一個包含預編譯範本的輸出檔案,使用<script>
標籤。關於此任務的更詳細描述可以在這裡找到,但重點是腳本和樣式表注入僅在包含<!--SCRIPTS--><!--SCRIPTS END-->
和/或<!--STYLES--><!--STYLES END-->
標籤的檔案中完成。這些標籤包含在新的 Sails 專案的預設 views/layouts/layout.ejs 檔案中。如果您不想為您的專案使用 linker,您可以簡單地移除這些標籤。
一個用於保持目錄同步的 Grunt 任務。它與 grunt-contrib-copy 非常相似,但嘗試僅複製實際已更改的檔案。它專門將檔案從
assets/
資料夾同步到.tmp/public/
,覆蓋已存在的任何內容。
此 Grunt 任務配置為將前端 Javascript 檔案中任何 >=ES6 語法轉譯為與舊版瀏覽器相容的程式碼。
壓縮客戶端 JavaScript 資源。請注意,預設情況下,此任務將「混淆」您的所有函數和變數名稱(透過將它們更改為更短的名稱,或完全移除它們)。這通常是理想的,因為它可以使您的程式碼顯著縮小,但在某些情況下可能會導致意外結果(特別是當您期望物件的建構函數具有特定名稱時)。要關閉或修改此行為,請在設定此任務時使用
mangle
選項。
每當監看的檔案模式被新增、更改或刪除時,執行預定義的任務。監看
assets/
資料夾中檔案的變更,並重新執行適當的任務(例如 LESS 編譯)。這讓您無需重新啟動 Sails 伺服器即可在應用程式中看到資源的變更。