典型地,在一個電子應用,可以從兩個主處理和渲染過程require
節點模塊:需要()節點模塊通過HTTP服
var myModule = require('my-module');
然而,這並不似乎工作,如果頁面通過HTTP而不是從本地文件系統加載。換句話說,如果我打開一個窗口,像這樣:
win.loadURL(`file://${__dirname}/index.html`);
我可以require
一個節點模塊沒有問題。但是,如果我不是開這樣的窗口:
win.loadURL(`http://localhost:1234/index.html`);
我再也不能在我的網頁require
節點模塊 - 我在網頁的控制檯中看到Uncaught Error: Cannot find module 'my-module'
。在通過HTTP提供的Electron頁面中是否有任何方法可以使用節點模塊?
一點背景知識:我公司正在建設需要被託管的Web應用程序和的電子殼中的能力的應用程序。爲了使這兩個環境更簡單和一致,我的Electron應用程序啓動本地Web服務器並打開託管在http://localhost:1234
處的應用程序。現在,我希望能夠使用electron-spell-check-provider
將拼寫檢查/拼寫建議添加到應用程序中。這個模塊需要在渲染器進程中導入和初始化,所以我試圖在我的網頁裏面require('electron-spell-check-provider')
,但是這個失敗並且出現Cannot find module
錯誤。
我不確定,但似乎http版本正在獲取文件的一些不同的實際路徑。嘗試通過以下方式更改require語句:=>「require('./electron-spell-check-provider')」 –
您是否嘗試過:require('electron')。remote.require('electron-spell-check-provider ')'? – ahwayakchih
你最終搞清楚了嗎? remote.require()適用於我,但這並不總是一個好的解決方案。任何其他方式來做到這一點? – logidelic