swiperjs es 模块构建在 IE11 浏览器中不起作用

swiperjs es module build doesn't work in IE11 browser

我正在使用 webpackbabel 来转译模块,在将 swiper npm 包添加到构建后,IE11 浏览器停止工作,因为 dom7 依赖项未转译适当地。 swiper's get started 页面指出了这一点,但尚不清楚必须采取哪些措施来解决该问题。

经过几天的研究和多次尝试,我终于让它工作了。

重要 需要注意的是,您必须使用 babel.config.js 而不是 .babelrc 以便 node_modules 可以包含到构建中。

最终配置:

babel.config.js(仅相关部分):

module.exports = {
  "presets": [
    ["@babel/env", {
      "targets": {
        "ie": "11"
      }
    }],...

webpack.config.js(仅相关部分):

test: /\.js$/,
exclude: /node_modules\/(?!(swiper|dom7)\/).*/,
rules: [
   {
     use: [{
       loader: 'babel-loader',
       options: {
         cacheDirectory: true,
         babelrc: false,
         rootMode: 'upward'
       }
     }]
   }
 ]

这篇文章让我找到了正确的方向(请参阅 RyanGosden 的评论)- https://www.bountysource.com/issues/79144083-not-working-in-ie11

希望能帮助其他人节省一些时间!

2022 年更新:

之前的答案是正确的,但 swiper 7 添加了一个名为 ssr-window 的新 esm 依赖项。所以需要添加如下:

webpack.config.js(仅相关部分):

test: /\.js$/,
exclude: /node_modules\/(?!(swiper|dom7|ssr-window)\/).*/,
rules: [
   {
     use: [{
       loader: 'babel-loader',
       options: {
         cacheDirectory: true,
         babelrc: false,
         rootMode: 'upward'
       }
     }]
   }
 ]