Sublime Text SFTP和Compass手表

时间:2013-07-25 13:58:13

标签: netbeans sass sublimetext2 sftp watch

我最近开始在Netbeans中使用Compass和Sass,一切都按预期进行。

最近我开始使用Sublime Text。问题是我的scss文件。我上传文件后,手表会检测到更改并尝试编译,但上传未完成,因此会抛出错误。

在Netbeans中,上传工作方式不同:它会创建一个新文件,当它完成后,旧文件将被删除,新文件将被重命名,因此手表仅在文件位于服务器时检测到更改。

上传期间

的style.css

style.new.css

上传后:

的style.css

无论如何在Sublime Text中做同样的事情吗?

2 个答案:

答案 0 :(得分:0)

我假设您正在使用here

中的SFTP插件

据我所知,此插件中没有配置选项。

我的第一个建议是修改你的监控脚本在编译之前等待几秒钟,然后再次检查文件以查看它是否在几秒钟内被修改。如果它被修改,则再次循环,直到它停止被修改。

如果您无法修改监控系统来做到这一点,那么您很可能会运气不好。我不得不建议寻找另一个插件。我已经阅读了很多这些不同插件的代码,并且大多数人使用Putty的PFTP并直接将文件上传到服务器,因此您可能很难找到一个按照您想要的方式工作。

由于你正在使用的SFTP插件是封闭源代码(请注意你必须为它支付费用,就像ST2一样使用nagware),你无法修改它,或者请求别人为你修改它。你必须要求开发人员改变它。另一方面,如果您使用了Mote之类的插件,则源代码随时可用,您或其他人可以根据您的需要对其进行修改。

答案 1 :(得分:0)

我正在审查这个问题,因为我一直在寻找精确的解决方案并让它在 Sublime 3 Windows 上运行。

首先您要安装 Ruby Installer(启用“添加到路径变量”选项),然后只需打开一个 cmd 并键入:

gem install compass

然后您需要创建一个 Sublime Build System,正如最初在 related SASS question 上建议的那样。它将运行一个简单的命令行。就我而言,我的 config.rb 文件位于 project/foo/bar/theme 中,.scss 文件位于 project/foo/bar/theme/scss 中,为了使事情具有可扩展性并具有不同的可能主题配置,我离开了构建系统更多相对于文件路径。所以构建系统很简单:

{
    "shell_cmd": "compass compile ../",
    "selector": "source.scss",
}

保存这个构建系统,比如“Compile SCSS”。并且,在打开 .scss 文件的情况下,在 Tools > Build System > Compile SCSS 上选择它。还要检查 Tools > Save All on Build 以节省每次构建。

现在,如果您打开 .scss 文件并点击 Ctrl+B,Sublime 将运行命令,编译文件并保存 .scss。所以现在不用 Ctrl+S 来保存,只需使用 Ctrl+B。但 SFTP 仍然不会自动上传生成的 .css 文件。

为此,您需要在左侧边栏中找到 .css 文件,右键单击并转到 SFTP/FTP > Monitor File (Upload on External Save) 并保持打开文件选项卡(感谢 EranSch {3}})。

现在,每次在 Ctrl+B 文件上推送 .scss 时,SFTP 都会上传它,Sublime 会命令编译它,SFTP 会上传 .css 生成的文件(假设它们是打开的)。