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

Express+TypeScript项目根目录JSON文件未编译输出到dist文件夹如何解决

问题原因

TypeScript编译器(tsc)默认仅处理.ts/.tsx后缀的源码文件,你开启的resolveJsonModule配置仅支持在TS代码中导入JSON模块,不会自动将未被导入的、存放在源码外的JSON配置文件输出到outDir指定的dist目录。

解决方案

方案1:修改构建脚本追加复制操作(最简便,适配纯tsc编译场景)

直接在package.json的build命令后追加文件复制逻辑即可:

  • 若仅在Mac/Linux环境下部署,将build命令修改为:
    "scripts": {
      "build": "tsc && cp appsettings*.json swagger.json dist/"
    }
    
  • 若需要兼容Windows跨平台运行,先安装轻量复制工具cpx为开发依赖:
    npm i cpx -D
    
    再修改build命令:
    "scripts": {
      "build": "tsc && cpx \"*.json\" dist/"
    }
    
    如果后续要复制子目录下的静态资源,修改匹配规则即可,比如要复制assets目录下所有文件可以写成cpx "assets/**/*" dist/assets/。

方案2:使用构建工具处理(适配已接入webpack/rollup的项目)

如果你的项目已经接入了webpack等构建工具,可以添加对应的资源处理插件:

  • webpack场景下安装copy-webpack-plugin,配置直接匹配根目录的JSON文件输出到dist目录即可。

验证方法

执行npm run build后检查dist目录,确认对应的JSON文件已经正常输出,启动dist目录下的编译后服务测试配置读取逻辑正常即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:39:02