標籤:

Electron基礎 - 解決無法使用jQuery/RequireJS/Meteor/AngularJS 的問題

jQuery等新版本的框架,在Electron中使用普通的引入的辦法會引發異常,原因始Electron默認啟用了Node.js的require模塊,而這些框架為了支持commondJS標準,當Window中存在require時,會啟用模塊引入的方式。以下是幾種解決辦法:

1. 去掉框架中的模塊引入判斷代碼,比如jQuery中的第一行代碼中的:

!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}

改成:

!function(a,b){b(a)}

以上方法只適用於jQuery框架,其它框架需要自行研究其模塊結構,刪除相應代碼即可。

2. 使用Electron官方論壇提供的方法,需要改變require的寫法,此方法各個框架通用:

<head><script>window.nodeRequire = require;delete window.require;delete window.exports;delete window.module;</script><script type="text/javascript" src="jquery.js"></script></head>

如果你是剛開始開發Electron桌面端程序,建議使用第二種方法,注意引入習慣即可。如果已經開發了一定量的,不推薦使用第二種用法。如果你不想使用Node.js模塊,大可以去掉require模塊化引入,直接使用以下方法禁用Node.js的require模塊化引入,即可正常使用任何框架

// In the main process.let win = new BrowserWindow({ webPreferences: { nodeIntegration: false }});

推薦閱讀:

一圖淺析electron架構
什麼是Electron:跨平台桌面應用程序的一個開源庫
上傳一個nodeblink的demo,試玩一下
bElectron bAPI Demos 項目解析

TAG:Electron | Nodejs |