0

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

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

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

上传期间

样式.css

样式.new.css

上传后:

样式.css

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

4

2 回答 2

0

我假设您正在使用此处的 SFTP 插件

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

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

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

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

于 2013-08-05T08:22:39.550 回答
0

我正在审查这个问题,因为我正在寻找那个精确的解决方案并让它在 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此相关问题上)。

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

于 2021-05-19T15:35:22.863 回答