Sublime Text SFTP和指南针手表



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

最近,我开始使用Sublime Text。问题出在我的scss文件上。我一上传文件,手表就会检测到更改并尝试编译,但上传还没有完成,所以它会抛出一个错误。

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

在上传过程中

style.css

style.new.css

上传后:

style.css

在Sublime Text中有没有做同样的事情?

我假设您使用的是来自的SFTP插件

据我所见,在这个插件中没有配置选项。

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

如果你无法修改监控系统来做到这一点,你很可能运气不好。我不得不推荐寻找另一个插件。我已经阅读了很多不同插件的代码,大多数插件使用Putty的PFTP,只是简单地将文件直接上传到服务器,所以你可能很难找到一个能按照你想要的方式工作的插件。

由于您使用的SFTP插件是封闭源代码的(请注意,您必须为此付费,使用与ST2类似的nagware),您无法修改它,也无法请求他人为您修改它。你必须要求开发人员更改它。另一方面,如果你使用像Mote这样的插件,源代码很容易获得,你或其他人可以修改它以满足你的需求。

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

首先,你想安装Ruby安装程序(启用了"添加到路径变量"选项),然后只需打开一个cmd并键入:

gem install compass

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

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

保存这个构建系统,比如";编译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对这个相关问题的回答)。

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

最新更新