You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现Sublime Text结合Gulp自动编译SCSS并通过sFTP传至远程服务器?

实现Sublime Text保存SCSS后自动Gulp编译+远程服务器上传的完整流程

我来帮你梳理这个需求的实现步骤,其实分两大块:Gulp编译SCSS到CSS,以及Sublime自动触发编译+CSS文件自动上传,咱们一步一步来:

一、先装必要的工具和插件

1. 本地项目依赖(Gulp相关)

首先确保你的项目已经初始化了npm(没有的话在项目根目录跑npm init -y),然后安装编译SCSS需要的Gulp包:

npm install gulp gulp-dart-sass gulp-plumber --save-dev
  • gulp-dart-sass:现在官方推荐的Sass编译器,比旧的gulp-sass更稳定
  • gulp-plumber:防止编译出错时Gulp任务直接中断,方便调试

2. Sublime Text 3插件

你已经有sFTP插件了,还需要额外装一个:

  • 通过Package Control搜索安装Gulp插件(或者用下面的自定义Build System方法,二选一即可)

二、配置Gulp编译任务

在项目根目录创建gulpfile.js,写入以下代码(记得替换成你自己的文件路径):

const gulp = require('gulp');
const sass = require('gulp-dart-sass');
const plumber = require('gulp-plumber');

// 核心编译任务:把SCSS转成CSS
function compileSass() {
  return gulp.src('./src/scss/**/*.scss') // 你的SCSS源文件路径,比如src下的所有SCSS
    .pipe(plumber()) // 捕获错误不中断任务
    .pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError)) // 可选expanded(格式化)或compressed(压缩)
    .pipe(gulp.dest('./dist/css')); // 编译后CSS的输出路径,比如dist/css
}

// 监听SCSS文件变化,自动触发编译
function watchSass() {
  gulp.watch('./src/scss/**/*.scss', compileSass);
}

// 导出任务,方便Sublime调用
exports.compileSass = compileSass;
exports.default = watchSass;

写完后可以先手动跑gulp compileSass测试下编译是否正常,确保CSS能生成到指定目录。

三、配置Sublime Text:保存SCSS时自动触发Gulp编译

这里有两种方案,选一种就行:

方案1:用Gulp插件自动触发

  1. 安装好Gulp插件后,打开你的Sublime项目
  2. 按下Ctrl+Shift+P打开命令面板,输入Gulp: Enable Auto Run
  3. 选择你要自动运行的任务——这里选compileSass,这样每次你保存SCSS文件时,插件会自动触发这个编译任务

方案2:自定义Build System(无需额外插件)

  1. 打开Sublime,点击Tools > Build System > New Build System
  2. 粘贴以下配置(同样替换成你的项目路径逻辑,或者直接用变量):
{
  "cmd": ["npx", "gulp", "compileSass"],
  "working_dir": "${project_path}",
  "selector": "source.scss",
  "shell": true
}
  1. 保存为SCSS-Gulp.sublime-build,然后在Tools > Build System里选中这个配置
  2. 勾选Tools > Build System > Save on Build,这样每次保存SCSS文件时,Sublime会自动运行这个Build任务,触发Gulp编译

四、配置sFTP插件:自动上传编译后的CSS

  1. 右键你的项目文件夹,选择sFTP/FTP > Setup Server,生成sftp-config.json文件
  2. 先把远程服务器的基础配置填对:host(服务器地址)、user(用户名)、password(或密钥)、remote_path(远程服务器上存放CSS的路径,比如/var/www/html/css
  3. 在配置里添加自动上传的规则,让sFTP监听CSS文件的变化:
"upload_on_save": true,
"watch": [
  "./dist/css/**/*.css" // 这里填你Gulp输出CSS的路径,和gulpfile里的dest一致
],
"watch_timeout": 500 // 延迟500ms再上传,避免编译未完成就触发上传
  1. 保存配置后,sFTP就会自动监听CSS文件的修改,一旦Gulp编译完成更新了CSS,就会自动把文件上传到远程服务器

一些注意事项

  • 如果你的电脑没全局安装Gulp,用方案2的Build System时,cmd里用npx gulp而不是直接gulp,npx会自动调用项目本地的Gulp
  • 测试时可以分步骤来:先测Gulp编译是否正常,再测Sublime保存是否触发编译,最后测CSS更新是否自动上传
  • 如果sFTP没触发上传,检查watch路径是否正确,或者重启Sublime试试

内容的提问来源于stack exchange,提问作者Enpeiks

火山引擎 最新活动