使用@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
相关产品推荐
相关产品推荐

