Electron打包后運(yùn)行出錯(cuò)

在升級(jí)Node和Electron版本后,在某些機(jī)器上打包發(fā)布時(shí)出現(xiàn)了下面的異常:

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' }

但是怪異的是本地編譯運(yùn)行是沒(méi)問(wèn)題的,但是一旦打包成asar運(yùn)行就會(huì)出現(xiàn)問(wèn)題,通過(guò)崩潰信息可以知道問(wèn)題出在xml2js這個(gè)庫(kù),解壓生成的asar文件,發(fā)現(xiàn)node_modules/xml2js/lib/目錄下面并沒(méi)有builder.js這個(gè)文件,本地編譯的node_modules中明明是有的,將本地的builder.js文件拷貝到asar解壓后的目錄中,再次運(yùn)行,發(fā)現(xiàn)可以正常運(yùn)行了,真是很神奇。

現(xiàn)在的問(wèn)題就是為什么打包的時(shí)候不會(huì)把這個(gè)文件一起打包進(jìn)去,查看了打包的代碼,發(fā)現(xiàn)也并沒(méi)有忽略掉builder.js這個(gè)文件,grep一下整個(gè)項(xiàng)目發(fā)現(xiàn)builder.js這個(gè)關(guān)鍵字基本沒(méi)有,這就不是神奇,而是詭異了,把本地的node_modules/xml2js/lib/builder.js文件進(jìn)行改名,比如改為xbuilder.js,然后將xml2js.js中對(duì)應(yīng)的引用也改為require('./xbuilder'),然后進(jìn)行打包編譯,運(yùn)行,發(fā)現(xiàn)可以正常運(yùn)行。

改名后,可以正常運(yùn)行,那說(shuō)明可能在某個(gè)地方將builder.js過(guò)濾掉了,但是一直也找不到相關(guān)的代碼,更詭異的是我把builder.js改為xbuilder.js是可以的(甚至不帶builder關(guān)鍵字都可以),但是改為builder2.js就不行了,也是醉了,更更詭異的是相同的代碼,相同的環(huán)境,在其他的電腦上就是好的,只能呵呵了。

目前也沒(méi)有其他方案,暫時(shí)也只能這樣了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫(xiě)在開(kāi)頭 先說(shuō)說(shuō)為什么要寫(xiě)這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,448評(píng)論 4 31
  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺(jué)受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,374評(píng)論 7 35
  • 學(xué)習(xí)流程 參考文檔:入門Webpack,看這篇就夠了Webpack for React 一. 簡(jiǎn)單使用webpac...
    Jason_Zeng閱讀 3,262評(píng)論 2 16
  • GitChat技術(shù)雜談 前言 本文較長(zhǎng),為了節(jié)省你的閱讀時(shí)間,在文前列寫(xiě)作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,899評(píng)論 7 110
  • 從小到大聽(tīng)過(guò)很多的故事,所謂故事,就是過(guò)去的事,可能是真的,也可能是憑空捏造的。小時(shí)候特別羨慕王子與公主的故事,他...
    邵子初閱讀 614評(píng)論 1 0

友情鏈接更多精彩內(nèi)容