模式如何用 dev-live-reload 實時刷新 LESS 樣式并手動重載核心與包樣式表)
Atom 開發(fā)模式如何用 dev-live-reload 實時刷新 LESS 樣式并手動重載核心與包樣式表【免費下載鏈接】atom:atom: The hackable text editor項目地址: https://gitcode.com/gh_mirrors/at/atom在本地開發(fā) Atom 核心或捆綁包時改完 LESS 樣式后不想重啟編輯器、而是希望在運行中的窗口里直接看到效果——這就是 dev-live-reload 包 的作用它監(jiān)聽 Atom 的.less文件樣式改動會實時反映到任何運行中的開發(fā)模式窗口。同時它提供一條手動命令一次性重載所有核心與包的樣式表。適用前提窗口必須以開發(fā)模式運行且該窗口不是 spec測試模式。前提條件打開一個開發(fā)模式窗口dev-live-reload 默認安裝在所有以開發(fā)模式運行的 Atom 窗口中見 README。打開方式在命令面板中運行Application: Open Dev命令即可打開一個新的開發(fā)模式窗口。這個限制也寫在了包代碼里lib/main.js 的activate()會在atom.inDevMode()為假或atom.inSpecMode()為真時直接返回不啟動任何監(jiān)聽。所以普通窗口里看不到實時刷新行為屬于預期現(xiàn)象。自動監(jiān)聽如何生效哪些 .less 文件被覆蓋包激活后等初始包激活完成后會啟動一套 watcher分三層核心樣式。BaseThemeWatcher 定位到倉庫static/目錄即 static/atom.less 所在目錄逐個監(jiān)聽其中的.less文件任一文件變化時調用atom.themes.reloadBaseStylesheets()重載核心樣式表。包與主題樣式。PackageWatcher 為每個有樣式表路徑的激活包類型atom和激活主題類型theme建立監(jiān)聽既監(jiān)聽其styles目錄也遞歸收集目錄下每個樣式表文件單獨監(jiān)聽。例如修改 packages/atom-dark-ui/styles 下的文件就屬于這一類。動態(tài)變化。UIWatcher 還訂閱了主題切換與包激活/停用事件切換主題時會銷毀全部主題 watcher 并對新的激活主題重建新激活的包會被加入監(jiān)聽停用的包對應 watcher 被銷毀。watcher.js 里的監(jiān)聽器會跳過位于.asar歸檔內的文件路徑也就是說只監(jiān)聽真實文件系統(tǒng)上的樣式文件。實時刷新一次樣式改動在開發(fā)模式窗口打開的同時直接編輯被監(jiān)聽的.less文件保存后樣式即反映到所有運行中的開發(fā)窗口無需任何手動操作。代碼層面有兩個可觀察的副作用普通樣式文件變化觸發(fā)該包重載時package-watcher.js 會向控制臺輸出Reloading package加包名如Reloading package atom-dark-ui。若變化文件的路徑中包含variables例如 ui-variables.less會額外觸發(fā)全局樣式整體重載此時 ui-watcher.js 輸出Global changed, reloading all styles。手動重載全部核心與包樣式表當需要一次性強制刷新所有樣式時有兩條等價入口快捷鍵keymaps/dev-live-reload.cson 只定義了兩個平臺的綁定——.platform-darwin下是cmd-ctrl-R.platform-win32下是alt-ctrl-R均觸發(fā)dev-live-reload:reload-all該文件沒有 Linux 綁定其他平臺需走菜單或命令。注意 README 中記載的快捷鍵是meta-shift-ctrl-r與 keymap 文件不一致兩處以 keymap 文件為準更可靠。菜單menus/dev-live-reload.cson 在Packages → Dev Live Reload下提供Reload All Styles菜單項執(zhí)行的同樣是dev-live-reload:reload-all命令也可以直接在命令面板里輸入該命令名運行。該命令執(zhí)行的是 ui-watcher.js 中的reloadAll()先重載核心基礎樣式表再對每個激活包調用pack.reloadStylesheets()最后對每個激活主題調用theme.reloadStylesheets()。如何確認重載確實發(fā)生視覺確認運行中的開發(fā)窗口樣式隨文件保存立即更新這是 README 描述的預期行為README 附有一段演示 GIF??刂婆_確認在開發(fā)模式窗口的控制臺查看上節(jié)提到的Reloading package 包名與Global changed, reloading all styles日志手動執(zhí)行 reload-all 后各包重載路徑同樣會輸出前者。已知限制該包在 README 中明確標注為experimental。不處理主題中新添加的文件新增的.less文件不會被監(jiān)聽只有原本已存在并被收錄的樣式表文件在變化/刪除/重命名時觸發(fā)重載。監(jiān)聽只在開發(fā)模式窗口生效spec 模式下不激活位于.asar歸檔內的樣式文件不會被監(jiān)聽。keymap 文件未覆蓋 Linux 平臺的快捷鍵綁定該平臺請使用菜單項或命令dev-live-reload:reload-all完成手動重載?!久赓M下載鏈接】atom:atom: The hackable text editor項目地址: https://gitcode.com/gh_mirrors/at/atom創(chuàng)作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考