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

使用@nx/js:swc构建库时JSON文件无法导入问题

解决@nx/js:swc构建时JSON文件缺失的MODULE_NOT_FOUND问题

以下是几个针对性的排查和解决步骤:

  • 完善SWC构建目标配置
    仅设置copyFiles: true不足以让SWC识别需要复制的JSON文件,需配合includeAssets指定资源类型。在项目的project.json中,找到对应@nx/js:swc的构建目标,补充配置:

    "build": {
      "executor": "@nx/js:swc",
      "options": {
        "outputPath": "dist/libs/your-library",
        "main": "libs/your-library/src/index.ts",
        "tsConfig": "libs/your-library/tsconfig.lib.json",
        "copyFiles": true,
        "includeAssets": ["**/*.json"]
      }
    }
    

    includeAssets会明确告诉SWC需要复制所有JSON格式的额外资源。

  • 检查TypeScript配置
    在库的tsconfig.lib.json中,确保开启JSON模块解析支持:

    {
      "compilerOptions": {
        "resolveJsonModule": true,
        "esModuleInterop": true,
        // 其他原有配置...
      }
    }
    

    这一步能保证TypeScript正确识别JSON导入语句,避免编译阶段的隐性错误影响后续构建。

  • 清理缓存后重新构建
    Nx的构建缓存可能保留了旧的输出结果,导致新配置未生效。执行以下命令清理缓存并重新构建:

    nx reset
    nx build your-library
    
  • 手动指定资源复制规则
    如果上述方法仍不生效,可以直接在project.json的构建目标中添加assets数组,明确JSON文件的复制路径:

    "build": {
      "executor": "@nx/js:swc",
      "options": {
        // 其他原有配置...
        "assets": [
          {
            "input": "libs/your-library/src",
            "glob": "**/*.json",
            "output": "."
          }
        ]
      }
    }
    

    这个配置会将src目录下所有JSON文件,同步复制到构建输出目录的对应位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 09:45:57