你好,
我正在用typescript开发一个电子应用程序,它会中断编译,并显示以下错误消息(从技术上讲,有五个错误消息,但它们都是相同类型的错误,只是与不同的部分冲突)
node_modules/@types/body-parser/index.d.ts(12,23): error TS4090: Conflicting definitions for 'node' found at '.../node_modules/@types/node/index.d.ts' and './node_modules/electron/node_modules/@types/node/index.d.ts'. Consider installing a specific version of this library to resolve the conflict.因此,这意味着我有两个用于'node‘的类型库--然而,我没有在我的package.json中包含@types/node库(因为它显然默认存在于电子中)。因此,我对如何解决这个问题感到非常困惑和迷茫。
我尝试删除node_modules和yarn.lock,并从头开始重新构建模块,删除@types/node或again /.../@types/node,甚至删除这些引用的所有代码并逐步重新构建它们。都不起作用。我还尝试使用这里提到的解决方案:https://github.com/electron/electron/issues/10167,但无济于事。
在错误消息中写着“考虑安装这个库的特定版本来解决冲突”--我该怎么做?
希望有足够的信息继续下去,
干杯
发布于 2020-11-08 11:34:32
我已经设法解决了我的错误,即使它更多地是通过回避它的方式,而不是实际理解和解决潜在的问题。我怀疑对于一个相当复杂的UI技术堆栈和电子堆栈都有一个单独的node_modules文件。
因此,我将这两个项目分成两个单独的子项目,它们在编译时放在一起,并以这种方式组合在一起。值得注意的是,为了在UI项目中启用电子模块,我必须手动将其添加到webpack.config.js文件中,方法是将此元素添加到插件数组中
new webpack.ExternalsPlugin('commonjs', [
'electron',
'ipc',
'ipc-renderer'
]),所以总而言之,我不再有这个错误,尽管我本身没有解决它。我简短地描述了我是如何做到这一点的,希望其他遇到同样错误的人可以从中得到帮助。
干杯
https://stackoverflow.com/questions/64531643
复制相似问题