Duplicate identifier LibraryManagedAttributes

最近升级前端某个包时,报以下错误。经过分析,最终fixed,这里Mark下

原因

查看具体报错意思是存在两个版本的React类型定义。

yarn.lock中@types/react版本,注意有两个

解决办法

TSC配置skipLibCheck错误姿势

假如在tsconfig.json中增加skipLibCheck配置,重新进行TSC编译,实际上是OK的,但不建议这么做,因为这样是在放弃部分的类型安全。so,别这么做,虽然可以。

Package.json 当前做法

增加以下配置

1
2
3
"resolutions": {
"@types/react": "~16.8.19"
}

重新执行yarn命令,再看lock会发现,版本只有一个了。

其它办法

除了上面的解决方案意外,我们可以手动或者工具化删除多出来的重复包问题,当然lock文件难免要修改。

参考资料