通常、HTTP上で役立った、あなたはメインプロセスとレンダラープロセスの両方からrequire
ノードモジュールができます。しかしが必要()ノードモジュールは、電子アプリで、
var myModule = require('my-module');
、これはそうではありませんページがローカルのファイルシステムからではなくHTTP経由で読み込まれた場合に動作するようです。言い換えれば、私はこのようなウィンドウを開く場合:
win.loadURL(`file://${__dirname}/index.html`);
私ができるrequire
ノードモジュールを問題なく。しかし、私が代わりにこのようなウィンドウ開く場合:
win.loadURL(`http://localhost:1234/index.html`);
を私はもはや私のWebページ内のrequire
ノードモジュールすることができます - 私は、Webページのコンソールで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 ')。remote.require(' electron-spell-check-provider ') '? – ahwayakchih
あなたはこれを理解することになりましたか? remote.require()は私にとってはうまくいくが、それは必ずしも良い解決策ではない。他の方法でそれを行うには? – logidelic