Atom 开发模式如何用 dev-live-reload 实时刷新 LESS 样式并手动重载核心与包样式表
Atom 开发模式如何用 dev-live-reload 实时刷新 LESS 样式并手动重载核心与包样式表【免费下载链接】atom:atom: The hackable text editor项目地址: https://gitcode.com/gh_mirrors/at/atom在本地开发 Atom 核心或捆绑包时改完 LESS 样式后不想重启编辑器、而是希望在运行中的窗口里直接看到效果——这就是 dev-live-reload 包 的作用它监听 Atom 的.less文件样式改动会实时反映到任何运行中的开发模式窗口。同时它提供一条手动命令一次性重载所有核心与包的样式表。适用前提窗口必须以开发模式运行且该窗口不是 spec测试模式。前提条件打开一个开发模式窗口dev-live-reload 默认安装在所有以开发模式运行的 Atom 窗口中见 README。打开方式在命令面板中运行Application: Open Dev命令即可打开一个新的开发模式窗口。这个限制也写在了包代码里lib/main.js 的activate()会在atom.inDevMode()为假或atom.inSpecMode()为真时直接返回不启动任何监听。所以普通窗口里看不到实时刷新行为属于预期现象。自动监听如何生效哪些 .less 文件被覆盖包激活后等初始包激活完成后会启动一套 watcher分三层核心样式。BaseThemeWatcher 定位到仓库static/目录即 static/atom.less 所在目录逐个监听其中的.less文件任一文件变化时调用atom.themes.reloadBaseStylesheets()重载核心样式表。包与主题样式。PackageWatcher 为每个有样式表路径的激活包类型atom和激活主题类型theme建立监听既监听其styles目录也递归收集目录下每个样式表文件单独监听。例如修改 packages/atom-dark-ui/styles 下的文件就属于这一类。动态变化。UIWatcher 还订阅了主题切换与包激活/停用事件切换主题时会销毁全部主题 watcher 并对新的激活主题重建新激活的包会被加入监听停用的包对应 watcher 被销毁。watcher.js 里的监听器会跳过位于.asar归档内的文件路径也就是说只监听真实文件系统上的样式文件。实时刷新一次样式改动在开发模式窗口打开的同时直接编辑被监听的.less文件保存后样式即反映到所有运行中的开发窗口无需任何手动操作。代码层面有两个可观察的副作用普通样式文件变化触发该包重载时package-watcher.js 会向控制台输出Reloading package加包名如Reloading package atom-dark-ui。若变化文件的路径中包含variables例如 ui-variables.less会额外触发全局样式整体重载此时 ui-watcher.js 输出Global changed, reloading all styles。手动重载全部核心与包样式表当需要一次性强制刷新所有样式时有两条等价入口快捷键keymaps/dev-live-reload.cson 只定义了两个平台的绑定——.platform-darwin下是cmd-ctrl-R.platform-win32下是alt-ctrl-R均触发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菜单项执行的同样是dev-live-reload:reload-all命令也可以直接在命令面板里输入该命令名运行。该命令执行的是 ui-watcher.js 中的reloadAll()先重载核心基础样式表再对每个激活包调用pack.reloadStylesheets()最后对每个激活主题调用theme.reloadStylesheets()。如何确认重载确实发生视觉确认运行中的开发窗口样式随文件保存立即更新这是 README 描述的预期行为README 附有一段演示 GIF。控制台确认在开发模式窗口的控制台查看上节提到的Reloading package 包名与Global changed, reloading all styles日志手动执行 reload-all 后各包重载路径同样会输出前者。已知限制该包在 README 中明确标注为experimental。不处理主题中新添加的文件新增的.less文件不会被监听只有原本已存在并被收录的样式表文件在变化/删除/重命名时触发重载。监听只在开发模式窗口生效spec 模式下不激活位于.asar归档内的样式文件不会被监听。keymap 文件未覆盖 Linux 平台的快捷键绑定该平台请使用菜单项或命令dev-live-reload:reload-all完成手动重载。【免费下载链接】atom:atom: The hackable text editor项目地址: https://gitcode.com/gh_mirrors/at/atom创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考