私は現在Webアプリケーションを開発中で、WebPackにバンドルされるように自分のコードをリファクタリングする過程にあります。私のHTMLでHTMLファイルのバンドルされたjavascript(webpackを使用)の関数へのアクセス
私がクリックしたときにsendMessage()
関数を呼び出すボタン、私のコードの最初のバージョンで
<button type="button" class="btn btn-default" onclick="sendMessage(document.getElementById('claim').value)">Submit</button>
を持って、sendMessage()
機能は、私はHTMLに直接インポート.js
ファイルで定義されていました、
<script src="my_js/newsArticleScript.js"></script>
のsendMessage()関数が直接ファイルで宣言され、それが任意のクラスやモジュールの内部ではありませんが、それはD他の関数を呼び出します同じファイルにefinedので、私はそれを分けたくありません。
今はWebPackにバンドルされています。
const path = require('path')
module.exports = {
entry: {
\t homepage: './src/homepageScript.js',
\t newspage: './src/newsArticleScript.js'
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist/my_js')
}
}
homepageScript.js
が別のページのためである)です。 そして私は、私はエラーに
[Error] ReferenceError: Can't find variable: sendMessage
を取得し、ボタンを押したときに、今、私はそれについて読んだ、と私はWebPACKのは、グローバルな機能を公開しないことを学びました。私は関数をエクスポートしようとしましたが、同じエラーが発生し続けました。
誰もがこれを手伝ってくれますか?基本的に私が必要とするのは、webpackを設定する方法やJSを変更してHTMLでアクセスできるようにする方法を理解することです。
私はJSの新機能ですので、私のアプリケーションの設計方法が最善ではないので、改善のヒント(おそらくモジュールを使うべきでしょうか、ボタンも)歓迎されるでしょう。ありがとうございました:)
ありがとうございます!ちょうどオプション1を試してすぐに作業しました:)後でオプション2を試してみましょう。 – jsantos