如何在 Windows 的 package.json 中的 NPM 脚本中关闭终端?
Posted
技术标签:
【中文标题】如何在 Windows 的 package.json 中的 NPM 脚本中关闭终端?【英文标题】:How do you close the terminal in an NPM script in the package.json for Windows? 【发布时间】:2020-05-10 05:35:24 【问题描述】:在我的 package.json 中,我有一些脚本可以使用“开始”在新终端中打开(仅限 Windows 操作系统):
"automation": "start npm run webdriver:start && npm run timeout"
"webdriver:start": "webdriver-manager start",
"timeout": "timeout 3",
我的问题是,一旦操作完成,我该如何关闭该终端窗口?
我尝试了以下方法,但都没有关闭终端窗口:
"automation": "(start npm run webdriver:start && npm run timeout) && exit"
"automation": "(start npm run webdriver:start && npm run timeout) && exit 1"
当我在 Windows 终端中执行“退出”时,它会关闭窗口,但它似乎在脚本中不起作用。 非常感谢任何帮助。
运行以下命令:
npm run automation
【问题讨论】:
试试这个:cmd.exe /c "npm run webdriver:start && npm run timeout"
cmd.exe 是一个 Windows 命令行 shell,从帮助:/C 执行字符串指定的命令然后终止
那是给powershell的吗?我没有在powershell中运行。这在字符串之外也不起作用,因为 package.json 的语法不允许这样做
***.com/a/15637481/126995
仍然不确定你在做什么。在 package.json 的脚本中,我不能将 cmd.exe /c
放在字符串之外。而且我不确定三个斜杠会有什么帮助。你能给我一个具体的例子来说明如何将它写成 package.json 格式吗?
你需要像这样转义引号:“automation”:“cmd /c \”(start npm run webdriver:start && npm run timeout)&& exit\“”,但是我试过了@Soonts 回答,我没能从 vscode 得到它
【参考方案1】:
VSCode 不允许从脚本中关闭终端(检查this issue),但是您可以“静默”新打开的终端,因为您必须通过添加修改您的tasks.json
文件reveal
、clear
和 showReuseMessage
给它。
你的tasks.json
文件应该是这样的:
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
"type": "npm",
"script": "automation",
"problemMatcher": [],
"presentation":
"reveal": "silent",
"clear": true,
"showReuseMessage": false
]
如果您的task.json
文件丢失,请检查this other question。
【讨论】:
以上是关于如何在 Windows 的 package.json 中的 NPM 脚本中关闭终端?的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS unsafe-perm 不适用于 package.json