如何通过Shell或npm脚本执行VSCode的Restart TS Server命令并集成到Codegen流程?
实现Codegen后自动重启TypeScript服务器的方案
可以将TS Server重启功能集成到Yarn脚本或Shell脚本中,以下是几种实用方案:
方案一:通过VS Code命令行工具触发重启
VS Code支持通过命令行调用内置指令,直接在Codegen命令后追加重启TS Server的操作即可:
- 确保VS Code的
code命令已加入系统PATH(Windows可通过VS Code内置的"Shell Command: Install 'code' command in PATH"命令配置;macOS/Linux默认安装后已配置) - 在项目的
package.json中修改或添加Codegen脚本:
{ "scripts": { "codegen": "你的Codegen执行命令 && code --command typescript.restartTsServer" } }
执行yarn codegen时,Codegen完成后会自动触发当前打开的VS Code窗口重启TS Server。
方案二:修改TS配置文件触发自动重启
TypeScript Server会监听tsconfig.json或jsconfig.json的变更,我们可以在Codegen完成后对配置文件做一个无意义的修改,触发服务器自动重启:
创建Shell脚本(比如codegen-with-restart.sh):
#!/bin/bash # 执行Codegen命令 你的Codegen执行命令 # 临时修改tsconfig.json触发重启 echo "// temp-trigger" >> tsconfig.json # 立即移除临时内容 sed -i '$ d' tsconfig.json
给脚本添加执行权限:chmod +x codegen-with-restart.sh,然后在Yarn脚本中调用:
{ "scripts": { "codegen": "./codegen-with-restart.sh" } }
这个方案不依赖VS Code,适用于所有使用TS Server的编辑器。
注意事项
- 方案一仅对当前打开的VS Code窗口生效,多窗口场景可能需要额外处理
- WebStorm等IDE通常会自动检测生成的代码变更,一般无需额外重启操作;若需要,可查看对应IDE的命令行工具文档实现
内容的提问来源于stack exchange,提问作者Matt VerSteeg
相关产品推荐
相关产品推荐

