![](/img/trans.png)
[英]My sass not compiled when I tried it to compile from Sublime text 2?
[英]Sublime SFTP - Upload compiled css when sass file saved
我将解决方案混为一谈,以防万一有人像我一样迷失于此,并希望尽可能地坚持仅基于ST的工作流。 如果您使用ST的SFTP程序包,则可以选择监视文件以进行外部保存。
不幸的是,使用ST构建系统来编译我的SASS时,SFTP不知何故。 但是,SASS CLI的watch实用程序可以触发上传。 设置后,假设目标文件保持打开状态,SFTP将在每次构建后将其上传。
回顾一下,
打开目标文件,然后打开命令选项板。 输入SFTP: Monitor File (Upload on External Save)
对我而言,启动任何您喜欢的CLI监视/构建实用程序: sass --watch app.scss:app.css
使目标文件保持打开状态,否则SFTP监视器似乎停止。
请享用!
注意:您也可以通过在侧边栏上右键单击要监视的文件并选择...来启用文件监视。
SFTP为此提供了一个选项。 在程序包控件中搜索SFTP>监视文件。 选择后,“ SFTP监视”将出现在底部命令信息中。 现在,每次保存时,sass和兼容的css都将被上载到其重复的文件夹中。
由于Sublime SFTP似乎不支持此功能,因此您可能必须走另一条路。
我建议您使用某种东西来监视您的css文件夹,并将所有更改自动上传到您的服务器。 使用优质的WinSCP(如果您使用的是Windows)可以使用,但是任何同步文件夹的方法都可以使用。
我最终报废了SFTP并使用ExpanDrive 。 非常适合我的工作流程。
我仍在使用Sublime SFTP上传脚本文件(js / css / php等)。 通常,我按快捷方式上传打开的文件(Ctrl Alt U + N)。 但这很烦人,尤其是在频繁使用免责声明窗口的情况下。
我在nodejs上编写了一个简单的工具,它可以监视项目文件夹并在更改后上载任何文件。 它并不完美,但是使我的工作流程更加舒适: https : //github.com/liberborn/live-uploader 。
还要注意,您可以通过以下方法将文件的本地副本映射到远程副本:打开Sublime中的本地文件夹,然后在侧边栏中右键单击它,然后选择SFTP / FTP->映射到远程...进行设置建立连接,请确保输入适当的remote_path以将文件夹映射到。
然后,您可以进行构建/编译,打开本地已编译文件,右键单击代码,然后在SFTP / FTP菜单中选择“监视文件”选项。
现在,当您将来再次构建时,在编译文件仍然打开的情况下,它们将在不久后上载到服务器(以及在切换选项卡以查看它们时在Sublime中刷新)。
如果在保存文件时对CoffeeScript / Sass / Less文件进行了编译,则有一种方法可以强制Sublime SFTP插件上传已编译的文件。
转到Sublime Menu → Tools → Developer → New Plugin...
,然后复制粘贴以下代码:
import sublime, sublime_plugin, re, os
class SftpAutoUpload(sublime_plugin.EventListener):
def is_remote_file(self, file_name):
while file_name != os.path.abspath(os.sep):
file_name = os.path.dirname(file_name)
sftp_config = file_name + '/sftp-config.json'
if os.path.exists(sftp_config):
return True
return False
def on_post_save_async(self, view):
window = view.window()
file_name = view.file_name()
# Upload compiled files to SFTP when saving a file (Coffee, Sass, Less)
if self.is_remote_file(file_name):
extensions = { 'coffee': 'js', 'less': 'css', 'sass': 'css' }
for extension, compiled in extensions.items():
matches = re.match('^(.*)\.'+extension+'$', file_name)
if matches is not None:
compiled_file = matches.group(1) + '.' + compiled
if os.path.exists(compiled_file):
new_view = window.open_file(compiled_file)
window.run_command("sftp_upload_file")
new_view.close()
将文件另存为sftp-auto-upload.py
。 重新启动Sublime。
该插件的作用如下:
SFTP: Upload File
执行“上SFTP: Upload File
命令,并且关闭已编译的文件。 所有这一切几乎都是立即发生的,因此您甚至不会注意到打开了一个新选项卡。
可以改进代码,但是可以解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.