SWC无法解析TypeScript项目导入路径别名问题求助
SWC无法解析路径别名问题
问题详情
我使用SWC转译TypeScript项目时,遇到SWC无法识别tsconfig.json或.swcrc中定义的路径别名的问题。未指定SWC作为编译器时,ESLint和ts-node均可正常解析这些模块别名。
根据SWC的功能支持说明,它理应支持解析tsconfig.json,也能在.swcrc中配置路径别名,早年间也有开发者碰到过同类问题,按理现在已有解决方案。还有相关开发人员提到过SWC“不会读取tsconfig”,但我已经在.swcrc里配置了完全相同的路径别名,所以这应该不是问题根源。
SWC的文档表述模糊,仅提到jsc.baseUrl和jsc.paths是编译选项,语法与tsconfig一致,但完全未提及模块别名解析或tsconfig读取的相关细节。
从项目根目录执行swc . -d ./dist时,收到错误:
CustomError: Cannot find package '$lib' imported from /root/projects/example/src/index.ts
项目配置文件
tsconfig.json
{ "compilerOptions": { "target": "es2020", "module": "ESNext", "moduleResolution": "node", "baseUrl": "./", "paths": { "$lib/*": ["src/lib/*"] }, "outDir": "./dist", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true }, "ts-node": { "swc": true }, "exclude": ["node_modules", "dist"] }
.swcrc
{ "$schema": "https://json.schemastore.org/swcrc", "jsc": { "baseUrl": "./", "paths": { "$lib/*": ["src/lib/*"] } }, "module": { "type": "es6" } }
package.json
{ "type": "module", "devDependencies": { "@swc/cli": "^0.1.62", "@swc/core": "^1.3.35", "ts-node": "^10.9.1", "typescript": "^4.9.5" } }
寻求解决该问题的帮助或指导,谢谢!
内容的提问来源于stack exchange,提问作者minnow
相关产品推荐
相关产品推荐

