我在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?
答案 0 :(得分:2)
使用以下设置:
{
"cmd": ["taskkill","/f","/IM","node.exe","&","node", "$file"],
}
在Sublime Text中,“cmd”是一个数组,它包含要运行的命令及其所需的参数。如果要运行多个参数/命令,只需将这些参数/命令与逗号组合,ST3将自动在每个参数之间添加一个空格。
因此,将解析上述设置,如下所示:
taskkill /f /IM node.exe & node $file