我有一個按鈕,一個基本的HTML頁面:基本的WebPack不工作的按鈕點擊功能 - 未捕獲引用錯誤:未定義
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
<button id="button" onclick="uclicked()">Click me</button>
<script src="./bundle.js"></script>
</body>
</html>
和app.js
:安裝
//(function(){
console.log('started up')
function uclicked(){
console.log('You clicked');
}
//})();
的WebPack和webpack --watch
成功。該webpack.config.js是:
module.exports={
entry: './app.js',
output: {
path: __dirname,
filename: 'bundle.js'
}
}
當我加載頁面console.log
工作,但是當我按下按鈕,我得到Uncaught ReferenceError: uclicked is not defined
。
如果我將<script src="./bundle.js"></script>
替換爲<script src="./app.js"></script>
,並繞過webpack,則按鈕可以正常工作。爲什麼這個基本的webpack設置不工作?
'uclicked'引用全局函數,但的WebPack默認會包住你的'bundle'在iife,保護全球範圍。在你的代碼中使用'addEventListener',或者使用'expose-loader'將你的應用程序公開爲公共對象https://github.com/webpack/expose-loader –