升级i18n包为i18next后Vue项目构建时node_modules报TS错误如何解决
问题根因
vue-cli 集成 TypeScript 时默认使用 fork-ts-checker-webpack-plugin 做独立的类型检查,该插件为了提升检查效率,会独立读取配置,不会完全遵循 tsconfig.json 中的 exclude 和部分 compilerOptions 规则,因此你在 tsconfig 中添加的配置不会对构建阶段的类型检查生效。
解决方案
修改项目根目录下的 vue.config.js,通过链式配置修改类型检查插件的规则,示例配置如下:
// vue.config.js module.exports = { chainWebpack: config => { config.plugin('fork-ts-checker').tap(args => { // 配置插件跳过检查node_modules目录 args[0].exclude = ['node_modules'] // 同步开启skipLibCheck配置 args[0].typescript = { ...(args[0].typescript || {}), skipLibCheck: true } return args }) } }
额外排查点
- 确认项目根目录下是否存在多份 tsconfig 配置文件(比如
tsconfig.app.json、tsconfig.node.json等),所有相关配置文件的compilerOptions都需要添加skipLibCheck: true,exclude数组中都需要包含node_modules - 如果是临时构建需要跳过所有类型检查,可以在构建命令后添加参数
--no-fork-ts-checker,该方案会完全关闭类型检查,仅推荐临时调试使用,不建议作为常规配置。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

