2016-05-20 9 views
2

私はElectronを使用してプロジェクトを構築しており、Webpackを使用して(Angular 2)レンダリングプロセスアプリケーションを構築しています。ノードとrequireをElectronとWebpackで使用

このアプリケーションでは、実行時にビルド時に存在しないファイルを動的にrequireする必要があります。コードは次のようになります。

require("fs").readdirSync(this.path).forEach(file => { 
    let myModule = require(path.join(this.path, file)); 
    // do stuff with myModule 
}); 

問題はWebPACKのコンパイラが、それはダイナミック「のmymoduleのための独自の内部モジュールレジストリになります__webpack_require__()、独自に、実行時にrequire()コールを変換するということです"ファイルは、もちろんそれを見つけることはありません。

私は "外部"設定オプションを使用しようとしましたが、これは動的な要求であるため、 "外部"によって処理されないようです。

誰もがこの問題を解決するのに成功しましたか?

+0

ない100%を確認してください - あなたはglobal.require' '試してみましたか? – jantimon

+0

@jantimonはい、それはトリックです!ありがとう。 –

答えて

2

@jantimonことで私の質問にコメントで示唆したように、解決策はglobal.requireを使用することです:

require("fs").readdirSync(this.path).forEach(file => { 
    let myModule = global.require(path.join(this.path, file)); 
    // do stuff with myModule 
}); 
0

私はthis記事を横切り、著者がでtranspiledない取得したノードモジュールを必要とする他のいくつかの理由のために来ましたwebpack。彼は、webpack.config.jsファイルに

new webpack.IgnorePlugin(new RegExp("^(fs|ipc)$")) 

を使用するように提案しました。これは、モジュールでfsとipcをトランスペアレント化して、コードで使用できるようにする必要があります(必須)。

これがあなたの問題にも当てはまるのかどうかは分かりませんが、助けになるかもしれません。

よりコンテキストの元の記事は、ここで見つけることができます:https://medium.com/@Agro/developing-desktop-applications-with-electron-and-react-40d117d97564#.927tyjq0y

関連する問題