最近刚开始用 electron 做一个桌面小应用,里面用到了 net-ping 等包
然后就自然就发生了electron的版本和net-ping的 NODE_MODULE_VERSION 不一致的情况。
因为使用
npm rebuild --runtime=electron --target=16.0.0 --disturl=https://atom.io/download/atom-shell --abi=93
之后发现找不到包的情况,以为编译有问题
结果从rebuild 一直到 node-gyp,从nodejs 各个版本的不断卸载、安装。到 electron各个版本的卸载安装,还专门看了其版本匹配:
electron-releases - npm (npmjs.com)
Previous Releases | Node.js (nodejs.org)
妄图找到匹配的版本。。。
最后发现是引用包时候出的问题
nodejs的常用两种引用包的方法:
1.这种是将net-ping 包 用ping 来取代:
var ping = require ("net-ping");
2.而这种是从 electron 里面取出 app, Menu和 Tray ,有点像python 的 类似 from math import pi
const { app, Menu, Tray } = electron;
所以不管怎样还是要从最简单的地方开始查起,避免轻易怀疑是复杂性问题。