我正在使用带有@types的react(tsx),react-table,react-i18next
当我运行一个npm i时,@ types / react-table和@ types / react-i18next也会在子文件夹中安装react types。因此,我最终在每个相关的@types模块中使用@ types / react的多个副本。结果,打字稿在尝试运行应用程序时抛出错误,并且当我删除@types \ react-table,@ types \ react-i18next文件夹中的node_modules时,它可以正常编译。
我正在使用npm 6.5.0和节点8.15。 此行为在我同事的计算机上有所不同(所有计算机都在Mac OS Mojave上运行),它没有在上面列出的软件包上安装嵌套的@types \ react。
编辑: 将@types移到devDependencies,看起来像这样解决了。
答案 0 :(得分:1)
对于您的问题,尚无最终解决方案,因为它不可能通过atm来保护--no-optional
参数,因此npm github存储库中已有封闭功能请求,您可以在此处找到:
https://github.com/npm/npm/issues/14185
因此,只有atm可以选择排除软件包,每个新开发人员都必须使用--no-optional
参数自己安装它,否则您可以选择通过--save-dev
将其添加到开发依赖项中选项可以解决问题,但是这似乎是唯一的解决方案,因为npm开发人员不会在不久的将来添加该功能。