webpack引入未模塊化的庫

在引入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'
    }),
  ]
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章