好多基於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.
作者:艾孜爾江
