Node.js构建系统的Auto taskkill命令适用于sublime text 2,但不适用于sublime text 3

时间:2015-02-16 08:01:59

标签: windows node.js sublimetext2 sublimetext3

我在ST2上使用带有自动taskkill cmd的节点构建系统没有问题,但是ST3上的同一个sublime-build文件一直给我带来错误,如下所示:

[Decode error - output not utf-8]
[Finished in 0.1s with exit code 1]
[cmd: ['taskkill /f /im node.exe >nul 2>nul & node', 'C:\\Users\\benkwok\\Documents\\Node_js_learning_2015\\index.js']]
[dir: C:\Users\benkwok\Documents\Node_js_learning_2015]
[path: ***some files paths ommitted***;C:\Program Files\nodejs\;C:\Users\benkwok\AppData\Roaming\npm;]

节点构建系统文件如下:

{
    "cmd": ["node", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "working_dir": "${project_path:${folder}}",
     "selector": "source.js",
     "shell": true,
    "encoding": "utf-8",

    "windows":
    {
        "cmd": ["taskkill /f /im node.exe >nul 2>nul & node", "$file"],
    }
}

“windows”下的“cmd”是自动任务。它在ST2上完美运行,每当我点击f7或ctrl + b运行js文件时它首先杀死前一个。

我搜索了一个解决方案并尝试将cmd替换为以下内容,它适用于ST3。但是,这意味着我需要在每次运行新进程之前手动终止前一个进程。

"windows":
    {
        "cmd": ["node", "$file"],
    }

有没有人有更好的建议如何在ST3上拉出相同的autokill cmd?

1 个答案:

答案 0 :(得分:2)

使用以下设置:

{
    "cmd": ["taskkill","/f","/IM","node.exe","&","node", "$file"],
}

在Sublime Text中,“cmd”是一个数组,它包含要运行的命令及其所需的参数。如果要运行多个参数/命令,只需将这些参数/命令与逗号组合,ST3将自动在每个参数之间添加一个空格。

因此,将解析上述设置,如下所示:

taskkill /f /IM node.exe & node $file