在引入Zepto依賴時,報錯:Uncaught TypeError: Cannot read property 'createElement' of undefined
具體的錯誤原因分析請參考:https://juejin.im/entry/588ca3018d6d81006c237c85
以下是解決方法:
安裝 script-loader 和 exports-loader
$ npm i -D script-loader exports-loader
修改 webpack
module: {
rules: [
// ...
{
test: require.resolve('zepto'),
loader: 'exports-loader?window.Zepto!script-loader'
},
],
}
這樣就可以在頁面中正常引入使用 Zepto 了,方法適用類似的未模塊化的庫。
如果不想在頁面中使用 import $ from ‘zepto’;
而想在全局中直接使用 $ 或 Zepto,可以做如下修改(當然,前提是已經執行了上邊的步驟)
webpack.js
module: {
// ...
plugins: [
new webpack.ProvidePlugin({
$: 'zepto',
Zepto: 'zepto'
}),
]
}