欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-13 15:41:00
node-bindings非常好用,但是在electron中无法使用,我查了一下,是因为filename以file://开头导致无法定位动态库的根目录。已经提交给作者了,可...

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
}

总结

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