好多基于electron的项目自己都没有弄清楚就将里面的node版本弄成最新的版本,这样一来,人家自己的仓库在开发过程中虽然在本地运行的好好的(因为用的不是node的最新版本而是自己的机子上的老版本),但是提交上去之后别的开发者克隆完再本地运行tsc编译时会出现Cannot extend an interface 'NodeJS.EventEmitter'. Did you mean 'implements'?这样的提示,这就导致无法运行项目。我再GitHub上看到这种项目还不在少数,这里给大家讲一个方法,直接在package.json文件里面将 "@types/node" 的版本改为12的版本,比如说, "@types/node": "12.12.21" 就是一个方案。 为什么会出现这种情况呢? 这是因为@types/node对然在不断地更新,但是electron能够支持地最高版本只是它的v12版本,所以才会出现二者不兼容的情况。
Solution:
Use @types/node for Node v12 for now. Actually Node version of Electron is still v12. So @types/node@12 would be better when you write a code which runs on Electron.
作者:艾孜尔江