Electron打包后运行出错

在升级Node和Electron版本后,在某些机器上打包发布时出现了下面的异常:

App threw an error when running { Error: Cannot find module './builder'
    at Module._resolveFilename (module.js:470:15)
    at Function.Module._resolveFilename (/usr/share/mixun/resources/electron.asar/common/reset-search-paths.js:35:12)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/share/mixun/resources/mixun.asar/node_modules/xml2js/lib/xml2js.js:10:13)
    at Object.<anonymous> (/usr/share/mixun/resources/mixun.asar/node_modules/xml2js/lib/xml2js.js:37:4)
    at Object.<anonymous> (/usr/share/mixun/resources/mixun.asar/node_modules/xml2js/lib/xml2js.js:39:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10) code: 'MODULE_NOT_FOUND' }

但是怪异的是本地编译运行是没问题的,但是一旦打包成asar运行就会出现问题,通过崩溃信息可以知道问题出在xml2js这个库,解压生成的asar文件,发现node_modules/xml2js/lib/目录下面并没有builder.js这个文件,本地编译的node_modules中明明是有的,将本地的builder.js文件拷贝到asar解压后的目录中,再次运行,发现可以正常运行了,真是很神奇。

现在的问题就是为什么打包的时候不会把这个文件一起打包进去,查看了打包的代码,发现也并没有忽略掉builder.js这个文件,grep一下整个项目发现builder.js这个关键字基本没有,这就不是神奇,而是诡异了,把本地的node_modules/xml2js/lib/builder.js文件进行改名,比如改为xbuilder.js,然后将xml2js.js中对应的引用也改为require('./xbuilder'),然后进行打包编译,运行,发现可以正常运行。

改名后,可以正常运行,那说明可能在某个地方将builder.js过滤掉了,但是一直也找不到相关的代码,更诡异的是我把builder.js改为xbuilder.js是可以的(甚至不带builder关键字都可以),但是改为builder2.js就不行了,也是醉了,更更诡异的是相同的代码,相同的环境,在其他的电脑上就是好的,只能呵呵了。

目前也没有其他方案,暂时也只能这样了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 10,693评论 4 31
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 12,551评论 7 35
  • 学习流程 参考文档:入门Webpack,看这篇就够了Webpack for React 一. 简单使用webpac...
    Jason_Zeng阅读 8,347评论 2 16
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,340评论 7 110
  • 从小到大听过很多的故事,所谓故事,就是过去的事,可能是真的,也可能是凭空捏造的。小时候特别羡慕王子与公主的故事,他...
    邵子初阅读 3,538评论 1 0

友情链接更多精彩内容