2016-03-21 20 views
1

私はこのrequire<app></app>変数に割り当てられた要求をエクスポートするにはどうすればよいですか?</strong></p> <pre><code><script> var electron = require('electron') </script> <app></app> <script src="bundle.js"></script> </code></pre> <p><strong>App.vue:

のindex.htmlに見えるようになるために作るために次のことをやっている

const ipc = electron.ipcRenderer 
console.log(ipc) 

しかし、私は取得しますun-usedun-definedでESLintのエラーが発生したので、私はこれを行うことにしました:

requires.js:

var electron = require('electron') 

exports.electron = electron 

のindex.html:

<script src="requires.js"></script> 
</head> 

<body> 
    <app></app> 
    <script src="bundle.js"></script> 

しかし、今、私はこのエラーを取得:requires.js:3 Uncaught ReferenceError: exports is not defined

電子をエクスポートしてインポートする正しい方法を教えてくださいrequire

注:App.vueに直接electronを必要とが動作しません。あなただけelectron

index.htmlで全例を必要とすることができます:あなたがここでやろうとしているように見える何 https://github.com/alexcheninfo/vue-electron-simple

+1

'exports'ではなく' module.exports'でしょうか? –

答えて

1

は、グローバル変数としてelectronを定義しています。それが機能するには、最初の例でindex.htmlにwindow.electron = require('electron')を設定することができます。 (bundle.jsで利用可能になります)

しかし、この悪い習慣のためにグローバルを使用するので、必要ありません。何をすべきかは、コード内にrequireを使用するだけです。これはうまくいかないと言います。それはおそらくあなたがウェブパックなどを使用していると思われる理由は、bundle.jsを作成することです。さらに、ノードでバンドル処理を実行するのはおそらく電子ではないため、require('electron')は期待どおりに動作しません。バンドルに含まれていないindex.htmlで動作することに注意してください。

この設定を引き続き使用する場合は、バンドル中に解決されたrequireと実行時に解決されたrequireを区別するためにElectronの必要性を変更することができます。つまり、スクリプトタグのwindow.electronRequire = requireindex.htmlとし、コードにelectronRequire('electron')を使用します。

最初の場所にすべてのものをまとめておくのはなぜですか? Electronには完全なノード統合があるため、通常のノードモジュールを使用できます。ファイルはHTTP経由で送信されないので、すべてを1つのファイルにまとめて取得することはほとんどありません。

+0

アドバイスをいただきありがとうございます。まあ、 '.vue'ファイルを使うVue.jsを使っています。 WebpackはそれらをJavaScriptにコンパイルします。しかし、私はあなたが正しいと思う、私はコードをバンドルしないことを検討します。 – alexchenco

関連する問題