javascript - 如何使用 Webpack 5 和 Babel 7 创建 IE11 Bundle

标签 javascript webpack babeljs internet-explorer-11 babel-loader

我们如何将现代 JavaScript 编译成可与 Internet Explorer 11 (ie11) 一起使用的向后兼容的 JavaScript 包?具体来说,我们如何使用最新版本的 Webpack 5 和 Babel 7 做到这一点?

最佳答案

这是我可以创建的最小配置,其中包含一个测试文件,用于使用 IE 11 进行测试。Download on GitHub .
包.json

{
  "browserslist": [
    "ie 11"
  ],
  "scripts": {
    "dev":   "webpack -w",
    "build": "webpack"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/preset-env": "^7.12.7",
    "babel-loader": "^8.2.2",
    "core-js": "^3.8.0",
    "webpack": "^5.8.0",
    "webpack-cli": "^4.2.0"
  }
}
webpack.config.js
module.exports = {
  entry: './index.js',
  module: {
    rules: [{
      test: /\.m?js$/,
      exclude: /node_modules/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: [
            ['@babel/preset-env', {
              useBuiltIns: 'usage',
              corejs: 3
            }]
          ]
        }
      }
    }]
  }
}
Greeting.js
export default '2020 has been one hell of a year!'
index.js
/* 
 * Test that uses modern JavaScript and will be compiled to work in IE 11
 */
import greeting from './Greeting'

window.addEventListener('load', async () => {
  const o = {
    greeting: await Promise.resolve(greeting)
  }

  console.log(
    o,
    Object.entries(o),
    Object.keys(o),
    Object.values(o),
  )
})

关于javascript - 如何使用 Webpack 5 和 Babel 7 创建 IE11 Bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65035451/

相关文章:

javascript - 在 PhantomJS 中自动删除 localStorage 文件

javascript - scrollIntoView 不包含边框

javascript - 在 webpack 插件中使用加载器

javascript - 如何使用 webpack 从项目根目录导入外部文件?

javascript - 使用 "this"URL 将 "javascript:"元素传递给 JS 函数

javascript - 如何合并导入到不同 JS 组件的所有 .SCSS 文件并将它们输出到单个 .CSS 包?

javascript - JavaScript 代码块之间保持什么状态?

javascript - 将回调从模块 A 传递到 B 并绑定(bind) this,仍然具有 B 的范围。使用 babel

javascript - 你能在 .babelrc 中使用正则表达式吗?

javascript - 复选框 jQuery 的意外响应