关于node-bindings无法在Electron中使用的解决办法


Posted in Javascript onDecember 18, 2018

node-bindings非常好用,但是在Electron中无法使用,我查了一下,是因为fileName以file://开头导致无法定位动态库的根目录。已经提交给作者了,可以临时修改一下node_modules/bindings/bindings.js。

exports.getFileName = function getFileName (calling_file) {
 var origPST = Error.prepareStackTrace
  , origSTL = Error.stackTraceLimit
  , dummy = {}
  , fileName
 Error.stackTraceLimit = 10
 Error.prepareStackTrace = function (e, st) {
  for (var i=0, l=st.length; i<l; i++) {
   fileName = st[i].getFileName()
   if (fileName !== __filename) {
    if (calling_file) {
      if (fileName !== calling_file) {
       return
      }
    } else {
     return
    }
   }
  }
 }
 // run the 'prepareStackTrace' function above
 Error.captureStackTrace(dummy)
 dummy.stack
 // cleanup
 Error.prepareStackTrace = origPST
 Error.stackTraceLimit = origSTL
 //In Electron, filename starts with "file://"
 var fileSchema = "file://";
 if(fileName.indexOf(fileSchema) === 0) {
   fileName = fileName.substr(fileSchema.length);
   //on windows
   if(fileName.indexOf(":/") == 2){
     fileName = fileName.substr(1);
   }
 }
 return fileName
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
Sep 22 Javascript
页面刷新时记住滚动条的位置jquery代码
Jun 17 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
jQuery为某个div加入行样式
Jun 09 jQuery
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
javascript实现摄像头拍照预览
Sep 30 Javascript
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
ElementUI实现el-form表单重置功能按钮
Jul 21 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 #Javascript
JS监听滚动和id自动定位滚动
Dec 18 #Javascript
JS实现的tab页切换效果完整示例
Dec 18 #Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 #Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 #Javascript
微信小程序解除10个请求并发限制
Dec 18 #Javascript
vue项目中axios请求网络接口封装的示例代码
Dec 18 #Javascript
You might like
php array_keys 返回数组的键名
2016/10/25 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
python3中property使用方法详解
2019/04/23 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
python中np是做什么的
2020/07/21 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
函授大专自我鉴定
2013/11/01 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
普通党员整改措施
2014/10/24 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
教师年终个人总结
2015/02/11 职场文书
婚宴父亲致辞
2015/07/27 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL