Node.js报错ERR_IMPORT_ASSERTION_TYPE_MISSING:导入tsconfig.json需JSON类型断言
解决方法
1. 修正tsconfig.json的插件配置错误
你当前tsconfig.json里的compilerOptions.plugins字段配置了Rollup插件,这是误用——该字段是给TypeScript语言服务插件(如语法检查类插件)预留的,并非Rollup构建插件的配置位置。需要移除这部分内容:
修改后的tsconfig.json:
{ "extends": "../../tsconfig.json", "include": [ "**/*.ts" ], "exclude": [ "node_modules", "build" ], "compilerOptions": { "baseUrl": ".", "rootDir": ".", "outDir": "build/", // 显式声明确保resolveJsonModule配置生效(可选但更稳妥) "resolveJsonModule": true, // 若使用TypeScript 4.7+,建议设置为Node16/NodeNext对齐Node.js ESM行为 "moduleResolution": "Node16" } }
2. 在Rollup配置文件中正确加载插件
Rollup插件需要配置在项目的rollup.config.js(或.ts)文件内,示例配置如下:
import typescript from '@rollup/plugin-typescript'; import json from '@rollup/plugin-json'; export default { input: 'src/index.ts', // 替换为你的项目入口文件路径 output: { dir: 'build', format: 'es' // 根据需求选择输出格式,如cjs、umd等 }, plugins: [ typescript({ tsconfig: './src/core/tsconfig.json' // 指定当前子目录的tsconfig路径 }), json() ] };
3. 验证模块模式配置
- 如果项目使用ESM模式,确保
package.json中设置了"type": "module"; - 若使用CommonJS模式,将Rollup输出格式设为
cjs,可避免Node.js对import assertion的强制要求。
内容的提问来源于stack exchange,提问作者khteh
相关产品推荐
相关产品推荐

