1 electron版本之间的适配
electron 与 node.js 之间是有一个版本之间的对应关系。如果没有对应上,会有一定的影响,例如 electron V 10.4.7 对应的node.js的版本是 12.16.3 Chrome的版本是85.0.4183.121。要注意这些之间的关系
2 不同开发者electron版本不同下的开发
在不同开发者下的electron的版本可能有所不同,导致一些api发生了很大的变化,这样在项目里面的需要做一个高低版本之间的一个适配,例如:在electronV14版本中 electron移除remote模块 需要重新安装依赖 npm install --save @electron/remote 才能够继续使用remote模块
注意 在做适配的过程中 require("@electron/remote/main").initialize(); 对于主线程main 的初始化语句 最多只可以有一句 不然会出现 在项目中 高版本不会发生bug 但是在低版本中 函数会触发两次的bug
3 electron可以引用C++编译出来的node文件和dll文件
c++ 有一个nan node和c++之间可以用nan层作为中转站互相传递消息,可以在electron项目的主线程中用
`__non_webpack_require__` 来引用对应的node文件 路径可以使用计算机内部的环境变量来查找,这样就可以在electron应用的前端页{vue, react}等上使用C++的函数,在C++函数的内部的 this和单页面的this所指向的地方并不是一个地方,C++函数的内部的this 指向的是整个electron的项目应用的根部,从这里出发可以找到每一个页面。
4 electron生成安装包
electron支持引入nsis脚本进行生成安装包的相关配置以及在安装包安装的时候的一些操作
nsis: {
"oneClick": false,
"allowElevation": true,
"allowToChangeInstallationDirectory": true,
"installerIcon": "public/timg.ico",
"uninstallerIcon": "public/timg.ico",
"installerHeader": "public/timg.ico",
"installerHeaderIcon": "public/timg.ico",
"installerSidebar": "public/installerSiddebar.bmp",
"uninstallerSidebar": "public/uninstallerSiddebar.bmp",
"uninstallDisplayName": "${productName}${version}",
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"shortcutName": "SHom",
"include": "script/installer.nsi",
"script": "script/installer.nsi",
"deleteAppDataOnUninstall": false,
"runAfterFinish": true,
"menuCategory": false,