编译Angular源码时遇.mts文件扩展名未知错误求助
解决Angular源码构建时的
.mts文件扩展名错误及相关依赖问题 针对.mts文件扩展名未知的错误处理
- 匹配Node.js版本:Angular源码对Node版本有严格要求,查看项目根目录的
.nvmrc文件获取指定版本,用nvm use [版本号]切换(比如nvm use 20),确保版本兼容ESM模块和.mts文件解析。 - 配置ts-node支持ESM:
在项目根目录创建tsconfig.esm.json,添加如下配置:
然后修改{ "compilerOptions": { "module": "ESNext", "moduleResolution": "NodeNext", "target": "ES2020", "esModuleInterop": true }, "include": ["scripts/**/*.mts"] }package.json中的build脚本:"scripts": { "build": "ts-node --esm --project ./tsconfig.esm.json scripts/build/build-packages-dist.mts" } - 清理缓存重装依赖:
执行以下命令彻底重置依赖:rm -rf node_modules yarn.lock yarn cache clean yarn install
针对“找不到包引用文件”的补充处理
- 强制重装依赖:执行
yarn install --force,修复可能因网络问题导致的依赖下载不完整情况。 - 检查大小写一致性:如果使用WSL环境,确保import语句中的文件名与实际文件大小写完全匹配(Linux环境区分大小写)。
- 验证路径映射配置:检查
tsconfig.json中的paths字段,确认别名路径与实际文件位置一致,无拼写错误。
额外排查建议
- 优先使用WSL2环境构建,Angular源码在类Linux环境下兼容性更稳定。
- 确认yarn版本符合文档要求,执行
yarn -v查看,若版本不符可通过npm install -g yarn@[指定版本]切换。
内容的提问来源于stack exchange,提问作者mnglund
相关产品推荐
相关产品推荐

