You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript文件中直接执行命令(不通过package.json配置)

问题修复方案

错误根因排查&修复

1. 修复tsconfig.json语法错误

你当前的src/devTools/server/tsconfig.json存在JSON语法不兼容问题:配置项末尾多余的尾随逗号在部分JSON解析器中会触发解析失败,修改为如下内容:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "CommonJS"
  },
  "exclude": ["node_modules"],
  "extends": "../../../tsconfig.json"
}

2. 修复TS脚本中的spawn调用问题

spawn默认不会将子进程的输出、错误信息挂载到主进程,你看不到具体报错,同时Windows系统下直接调用react-scripts会找不到执行文件,需要兼容后缀,另外要绑定执行上下文为项目根目录,修改scripts/jest/runCoverage.ts代码如下:

import { spawn } from 'child_process';

// 兼容Windows系统的.cmd后缀
const reactScriptsCmd = process.platform === 'win32' ? 'react-scripts.cmd' : 'react-scripts';

const jestProcess = spawn(reactScriptsCmd, ['test'], {
  // 继承主进程的输入输出,能直接看到jest的报错信息
  stdio: 'inherit',
  // 绑定工作目录为项目根目录,避免相对路径错误
  cwd: process.cwd()
});

// 监听子进程错误,打印具体报错
jestProcess.on('error', (err) => {
  console.error('子进程执行失败:', err);
});

// 监听退出事件,同步退出码
jestProcess.on('exit', (code) => {
  process.exit(code || 0);
});

3. 不需要package.json scripts的直接执行方式

直接在项目根目录的终端执行如下命令即可运行,不需要配置scripts:

ts-node -r tsconfig-paths/register --project src/devTools/server/tsconfig.json --transpile-only scripts/jest/runCoverage.ts

如果执行提示找不到ts-node,全局安装即可:npm i -g ts-node tsconfig-paths


内容的提问来源于stack exchange,提问作者Firefouks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:39:06