集成本地开发包
在开发自动化脚本的过程中,有时候会调用到其它已经封装好的二进制格式的包,比如Node包中的sqlite
、robotjs
等包就包含了二进制包.node
文件,由于使用NPM安装这些二进制包的时候,会根据运行环境(操作系统、CPU架构)和Node版本编译为对应的版本,这个时候如果系统环境中安装的Node版本与CukeTest内置的Node版本不一致,调用编译后的包可能会出现NODE_VERSION
的错误。
针对这个问题有两种解决方式:
- 使用
electron-rebuild
工具将包重新编译为和CukeTest的Node版本一致的版本; - 在CukeTest的运行引擎改为系统中的Node,而不是内置Node;
使用electron-rebuild
重新编译包
出现NODE_VERSION
错误的原因是因为下载时编译的目标版本是系统中的Node,因此需要将其切换为CukeTest的版本重新编译,要用到electron-rebuild
包来完成重新编译,具体查看重新编译NPM包。只需要运行以下命令即可:
npm install electron-rebulid --save-dev
./node_modules/.bin/electron-rebuild.cmd [-w yourModule] -v 9.3.2
- 第一个参数为
electron-rebuild
包的命令行工具,在项目的node_modules/.bin
目录中,需要指定该路径; - 第二个参数为
-w
选项,也就是which
,需要指定重新编译的包,如果不填,则会重新编译项目中所有的包。 - 第三个参数为
-v
选项,为version
,需要指定Electron的版本,因为CukeTest使用的Electron版本是9.3.2,因此指定为相同的版本即可。
比如要重新编译的包为robotjs
,并且electron-rebuild
包也在项目目录中,那么就可以使用:
.\node_modules\.bin\electron-rebuild.cmd -w robotjs -v 9.3.2
运行引擎改为系统Node
默认情况下,CukeTest使用的Node引擎都是Electron框架自带的Node,而在安装库时使用的NPM是系统环境中Node自带的,因此下载的含二进制文件的包(即安装后需要编译的包),可能会出现不兼容而引起报错。在这种情况下,可以在“设置”中将CukeTest的运行引擎切换为系统本地的Node,可以避免兼容性的问题。点击查看详情。