关于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 相关文章推荐
javascript中的107个基础知识收集整理 推荐
Mar 29 Javascript
JavaScript 错误处理与调试经验总结
Aug 10 Javascript
jquery实现从数组移除指定的值
Jun 24 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
Jquery元素追加和删除的实现方法
May 24 Javascript
微信小程序开发中的疑问解答汇总
Jul 03 Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
webpack优化的深入理解
Dec 10 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 Javascript
vue使用swiper实现中间大两边小的轮播图效果
Nov 24 Javascript
vue中英文切换实例代码
Jan 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用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
javascript 定义新对象方法
2010/02/20 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
2010/06/02 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
Python常用的日期时间处理方法示例
2015/02/08 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
python获取整个网页源码的方法
2020/08/03 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
AJAX的全称是什么
2012/11/06 面试题
理工科学生的自我评价
2013/12/15 职场文书
前处理班长职位说明书
2014/03/01 职场文书
英语教师个人工作总结
2015/02/09 职场文书
加入学生会自荐书
2015/03/05 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
用php如何解决大文件分片上传问题
2021/07/07 PHP