Mam podstawową stronę HTML z przyciskiem:Podstawowe WebPack nie działa dla funkcji przycisk click - Uncaught błąd referencyjny: niezdefiniowane
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
<button id="button" onclick="uclicked()">Click me</button>
<script src="./bundle.js"></script>
</body>
</html>
i app.js
:
//(function(){
console.log('started up')
function uclicked(){
console.log('You clicked');
}
//})();
WebPack jest zainstalowany i webpack --watch
się uda. Webpack.config.js jest:
module.exports={
entry: './app.js',
output: {
path: __dirname,
filename: 'bundle.js'
}
}
Kiedy załadować stronę console.log
działa, ale gdy wciskam przycisk uzyskać Uncaught ReferenceError: uclicked is not defined
.
Jeśli zastąpię <script src="./bundle.js"></script>
z <script src="./app.js"></script>
i pominięciem pakietu internetowego, przycisk kliknie poprawnie. Dlaczego ta podstawowa konfiguracja Webpack działa?
'uclicked' odwołuje się do funkcji globalnej, ale WebPack domyślnie będzie otaczać swoją' bundle' w Iife, chroniąc zasięg globalny. Użyj 'addEventListener' w swoim kodzie lub ujawnij swoją aplikację jako obiekt publiczny za pomocą' expose-loader' https://github.com/webpack/expose-loader –