首先,您链接的问题是关于启用对 Compass 样式导入的支持,这是一种不适用于每个项目的解决方法。
您的问题是关于另一件事:编译 Compass 项目。
这两个问题都将在 PHPStorm 的第 7 版中解决,该版本不会很快发布:第 6 版刚刚发布。目前,有多种解决方法。
使用 PHPStorm 手动编译 Compass 项目
- 转到 PHPStorm IDE 设置的 外部工具 部分。
- 创建一个新外部工具。将其命名为“Compass 编译手册”或类似名称。
- 将程序设置为指向您的 Compass 二进制文件。在 Windows 上类似于
C:\Ruby193\bin\compass.bat,在 Linux 和 Mac 上可以简单地为 compass。但如果您使用的是 RVM,那么 Program 应该是 bash。
- 对于所有操作系统,Parameters 字段应为
compile,除非您使用的是 RVM。对于 RVM,Parameters 应设置为 –login -c "compass compile"。
-
工作目录字段应设置为
$ProjectFileDir$。
可以从工具菜单启动手动编译。您还可以分配一个热键以更快地运行它。确保热键不会与现有热键发生冲突。
在您保存更改时让 PHPStorm 编译您的项目
- 确保您拥有最新的 PHPStorm 早期访问预览版。可以从here下载。
- 确保您已安装 File Watchers 插件。转到 PHPStorm IDE 设置的 Plugins 部分,查找 File Watchers。如果它不在列表中,请通过以下方式安装它
浏览存储库并重新启动 PHPStorm。
- 如果您还没有在 PHPStorm 中打开您的项目。
- 转到 PHPStorm 项目设置的 File Watchers 部分。
- 创建一个新文件观察器。使用自定义模板。将您的观察者命名为“Compass compile on save”或类似名称。
- 将文件类型设置为 SCSS 或 SASS,具体取决于您在项目中使用哪一种。
- 将 Scope 保留为“项目文件”
- 将程序设置为指向您的 Compass 二进制文件。在 Windows 上类似于
C:\Ruby193\bin\compass.bat,在 Linux 和 Mac 上可以简单地为 compass。但如果您使用的是 RVM,那么 Program 应该是 bash。
- 对于所有操作系统,Arguments 字段应为
compile,除非您使用的是 RVM。对于 RVM,Arguments 应设置为 –login -c "compass compile"。 UPD: @ezekiel-victor 建议为:–login -c "compile --sass-dir=$ProjectFileDir$ --css-dir=$ProjectFileDir$"。
-
工作目录字段应设置为
$ProjectFileDir$。
- 禁用
Check for syntax errors。
- 将其余部分留空并保存。
现在,每当您保存对任何 SCSS 或 SASS 文件的更改时,PHPStorm 都会告诉 Compass 编译项目。
UPD 如果您使用的是 Bundler(您的项目中有 Gemfile 并且您使用 bundle install 来获取依赖项),您应该使用 bundle exec compass compile 而不是 compass compile。这意味着您必须使用bundle 可执行文件(Windows 上为bundle.bat)而不是compass(compass.bat)并相应地调整Arguments 字段。
在操作系统控制台中手动运行compass watch(推荐)
运行compass compile的问题在于它每次执行都会重新编译整个项目,因此速度很慢。
相反,您可以使用操作系统控制台在项目文件夹中手动运行compass watch 命令。 Compass Watch 将持续监控您的项目的变化。当发现有变化时,它只会重新编译修改过的部分,速度要快得多。
Compass Watch 足够智能,不会监控项目中的每个文件。它只监视由任何非部分文件或递归导入的部分导入的非部分文件(例如screen.scss)和部分文件(例如_layout.scss)。
如果您通过网络文件系统处理项目(例如,使用虚拟机或开发服务器运行代码时),编译和跟踪更改会变得太慢。因此,使用远程/虚拟机时的最佳选择是在该机器上运行compass watch,以便它在本地而不是通过网络文件系统跟踪更改。
重新激活指南针
Compass 缓存它自己的工作以加快编译速度。有时缓存与项目内容不一致。这会导致 Compass 报告各种奇怪的错误并拒绝编译您的项目。
一旦你觉得 Compass 报错不真实,执行compass clean 并重新编译你的项目。清理将清除 Compass 缓存和编译文件,使其从头开始。
您可以在控制台中手动运行compass clean 或将其添加为 PHPStorm 外部工具。