問題: Electron を使用して開発しているときに、jQuery を必要とする JS プラグインを使用しようとすると、スクリプト タグを使用して正しいパスをロードしても、プラグインは jQuery を見つけられません。
例えば、
<body>
<p id="click-me">Click me!</p>
...
<script src="node_modules/jquery/dist/jquery.min.js"></script> //jQuery should be loaded now
<script>$("#click-me").click(() => {alert("Clicked")});</script>
</body>
上記のコードを実行しても機能しません。実際には、DevTools を開いて、コンソール ビューに移動し、要素をクリックします<p>
。function $ is not defined
それと似たような内容が表示されるはずです。
ベストアンサー1
私の意見では、より優れた、より一般的な解決策は次のとおりです。
<!-- Insert this line above script imports -->
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
<!-- normal script imports etc -->
<script src="scripts/jquery.min.js"></script>
<script src="scripts/vendor.js"></script>
<!-- Insert this line after script imports -->
<script>if (window.module) module = window.module;</script>
利点
- 同じコードでブラウザとelectronの両方で動作します
- サードパーティライブラリ(jQueryだけでなく)の問題を修正し、個別に指定する必要がなくなりました。
- スクリプトビルド/パックフレンドリー(つまり、すべてのスクリプトをGrunt/Gulpでvendor.jsにまとめる)
node-integration
偽である必要はない
ソースここ