npm安装deasync引用出错

来源:互联网 发布:网络借贷 暂行办法 编辑:程序博客网 时间:2024/06/05 14:17

最近打算在js里面使用sleep功能,在网上找到了system-sleep包,使用npm安装,调用sleep方法,并没有问题,后来发现,这个sleep居然是同步实现而不是异步实现的,调查发现,sleep函数先require了deasync包,失败的话,就变成了同步实现方式。。。。研究了一下,deasync为啥require失败,错误信息大概如下:

Error: Could not locate the bindings file. Tried:   → /.../node_modules/deasync/build/deasync.node   → /.../node_modules/deasync/build/Debug/deasync.node   → /.../node_modules/deasync/build/Release/deasync.node   → /.../node_modules/deasync/out/Debug/deasync.node   → /.../node_modules/deasync/Debug/deasync.node   ......

大意就是deasync找不到二进制文件deasync.node,上网上查了一下,让我更新node-gyp,用node-gyp rebuild一下deasync,rebuild之后,错误变成了:

was compiled against a different Node.js version using  NODE_MODULE_VERSION 57. This version of Node.js requires  NODE_MODULE_VERSION 54. Please try re-compiling or re-installing

我天真的以为是node版本问题,各种更新node版本,怎么试验都没有用。。。。。从7.5.0一直试验到8.4.0就是没找到54,不是51就是57反正不是目标54。。。

然后继续网上搜索英文版,终于找到靠谱的了

npm install --save-dev electron-rebuildnpm uninstall deasyncnpm install deasync./node_modules/.bin/electron-rebuild

这回我们的sleep终于是异步的了,问题是难道大家都不使用deasync吗,或者没人遇到过这种问题,怎么都没找到中文版的答案,英语不好的人伤不起。。。。