Compass 如何同时监视多个项目?

发布于 2022-08-29 19:07:19 字数 308 浏览 17 评论 0

项目目录如下

- full_project
   | - app_1
   |    |-- css
   |    |-- img
   |    `-- sass
   |
   | - app_2
   |    |-- css
   |    |-- img
   |    `-- sass
   | - app_3
   ` ...

理论上,每个 app 都配置一个 config.rb,每次要跑的话就启动 n 个 compass watch 进程。如此一来非常麻烦,有没有更好的解决方法呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

太傻旳人生 2022-09-05 19:07:19

这要取决于你这几个 app 的样式能否合并成一个文件统一加载?

如果可以,那么可以在 full_project 下配置 config.rb,别忘了用上 import_path 选项,然后 创建一个统一的入口,比如 application.scss,这样就可以在其中统一引入各 app 的样式,如:

// 假设 import_path 包含了 ['app_1/sass', 'app_2/sass', 'app_3/sass']
@import 'xxx';
...

于是,你只需要 watch application.css 就好了。

不过这样一来,你其他的静态资源,比如字体,以及样式里需要引用的图片等等就必须统一放置,因为只有一个 config.rb 可用。然而你的确应该这样,因为归根结底 full_project 才是完整的统一的应用(对吧?),所有的静态资源应该统一在一起,将来你 CDN 也方便呀。分模块只分业务逻辑就好了,静态资源最好还是统一管理,哪怕你先统一在一起,然后分割子目录也行呀。

如果没办法更改资源路径了,那么就只好借助外部工具了。比如 Grunt 就可以,配置好多个子任务(路径可以完全分离),只需要运行一次,Grunt 会自动监视变化的目标来运行对应的子任务,实现单一入口的多任务调度。当然,Grunt 并非唯一之选,你很熟 Ruby 的话,Rake 也非常合适。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文