运行 在 VSCode 中每次保存时 rsync

Run rsync on every save in VSCode

我在本地系统上有一个存储库,正在远程服务器上测试我的更改。我正在使用 VSCode 进行开发。我希望在每次保存时,rsync 应该在后台 运行 并将当前本地文件中的更改与远程同步。如何使用 VSCode 实现此目的?

这是保存文件后使用 onDidSaveTextDocument 事件到 运行 代码的扩展代码。该代码使用 child_process 包的 exec 函数来 运行 一个命令。在这种情况下,它会启动 chrome 浏览器。

import * as vscode from 'vscode';
import * as path from 'path';

import * as cp from 'child_process';

export function activate(context: vscode.ExtensionContext)
{
    vscode.workspace.onDidSaveTextDocument((d) =>
    {
        vscode.window.showInformationMessage("Document saved:" + path.basename(d.fileName));

        const start = (process.platform == 'darwin' ? 'open' : process.platform == 'win32' ? 'start' : 'xdg-open');
        cp.exec(start + ' chrome ' );
    });
}

我正在使用 Save and Run vscode 扩展来在 VSCode 中点击保存时在本地和远程服务器之间同步代码。以下是我使用的配置。

"saveAndRun": {
  "commands": [
    {
      "match": ".*",
      "cmd": "rsync -av --no-owner ${file} {destination folder}${relativeFile}",
      "useShortcut": false,
      "silent": false
    },
  ]
}

rsync命令为运行时生成的输出可以在VSCode终端中看到。您可以在 .vscode/settings.json 文件中添加上述配置。您可以了解更多关于编辑 setting.json 文件 here

Sync-Rsync extension 就是为此而设计的。