Skip to content

Latest commit

 

History

History
43 lines (35 loc) · 1.15 KB

File metadata and controls

43 lines (35 loc) · 1.15 KB

此示例是对 node.js 能力的一个展示,扩展使用者的思路

openInVscode.js 代码如下

(function () {
  return function (argData, argParams) {
    const file_os = require("fs");
    const exec = require("child_process").exec;

    const cmdFileName = "command.bat";
    const commandList = [];
    commandList.push(`code -r ${argParams.filePath}`);
    file_os.writeFileSync(cmdFileName, commandList.join("\n"));
    exec(cmdFileName, function (err, stdout, stderr) {
      if (err) {
        console.error(err);
      }
    });
    setTimeout(() => {
      file_os.unlinkSync(cmdFileName);
    }, 1000);
    return {
      isWrite: false,
      response: {
        code: 200,
        data: {
          success: true,
        },
      },
    };
  };
})();

执行流程如下

  • 用系统模块fswriteFileSync方法创建一个名为 command.bat 的文件,并写入内容code -r 文件路径

  • 用系统模块exec执行 command.bat 文件,注意code -r 是 Vscode 提供的命令,-r 表示动作不会再打开一个新的编辑器窗口

  • bat 文件执行 1 秒种后, 用系统模块fsunlinkSync方法删除 command.bat 文件