首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步/等待使用babel再生器-运行时在ie11中不工作

异步/等待使用babel再生器-运行时在ie11中不工作
EN

Stack Overflow用户
提问于 2021-02-20 22:41:21
回答 2查看 3.6K关注 0票数 2

我有一个模板应用程序,我想让ie11工作,为此我使用webpack + babel。由于一些我忽略的原因,我的JS在ie11中根本不工作,即使我在配置中将它设置为目标。为了测试它,我在互联网上使用了一个ie11,但是我没有访问堆栈错误的权限,因为我在MacOS上。

我在这里错过了什么?

获得更多信息的源代码:https://github.com/VelynnXV/Front-End-Workflow

网址:https://nifty-noether-cafbd5.netlify.app/

app.js

代码语言:javascript
复制
import regeneratorRuntime from "regenerator-runtime";

async function app() {

  console.log('App entry point')
  const template = document.getElementById('app')
  await new Promise(r => setTimeout(() => r(), 2500))
  template.innerHTML = `
  <div class="web-container">
      <div id="">
          Async / awat test
      </div>
  </div>
`
  console.log('App finished')
};
app();

webpack.config.json

代码语言:javascript
复制
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  mode: 'development',
  entry: ['core-js/stable', './src/app.js'],
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: 'app.js',
  },
  devServer: {
    publicPath: "./src/",
    contentBase: path.join(__dirname, 'dist'),
    compress: true,
    port: 9000,
  },
  plugins: [
    new HtmlWebpackPlugin({ // will generate the html file WITH app.js
      // see plugin here : https://webpack.js.org/plugins/html-webpack-plugin/
      template: './src/index.html',
      filename: './index.html'
    })
  ],
  module: {
    rules: [ // set of rules letting webpack know how to handle .xyz files 
      {
        test: /\.m?js$/, // source: https://webpack.js.org/loaders/babel-loader/
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',

        }
      }
    ],
  },
};

babel.config.js

代码语言:javascript
复制
// babel.config.js

module.exports = api => {
    return {
      plugins: [
        "@babel/plugin-transform-runtime",
      ],
      
      presets: [
        [
          "@babel/preset-env",
          {
            useBuiltIns: "entry",
            corejs:3,
            // caller.target will be the same as the target option from webpack
            targets: api.caller(caller => caller && caller.target === "node")
              ? { node: "current" }
              : { chrome: "58", ie: "11" }
          }
        ]
      ]
    }
  }

package.json

代码语言:javascript
复制
{
  "name": "front-end-workflow",
  "version": "1.0.0",
  "description": "",
  "main": "src/app.js",
  "scripts": {
    "dev": "npm run clean && npm run build && webpack serve",
    "build": "webpack",
    "clean": "rimraf ./dist"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.12.17",
    "@babel/plugin-transform-runtime": "^7.12.17",
    "@babel/preset-env": "^7.12.17",
    "babel-loader": "^8.2.2",
    "css-loader": "^5.0.2",
    "html-loader": "^2.1.0",
    "html-webpack-plugin": "^5.2.0",
    "sass": "^1.32.8",
    "sass-loader": "^11.0.1",
    "style-loader": "^2.0.0",
    "webpack": "^5.23.0",
    "webpack-cli": "^4.5.0",
    "webpack-dev-server": "^3.11.2"
  },
  "dependencies": {
    "@babel/runtime": "^7.6.3",
    "core-js": "^3.3.2"
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-21 06:29:15

使用webpack 5,您可能必须为es5设置target以使其在IE11上工作,如下所示:

代码语言:javascript
复制
// webpack.config.js

module.exports = {
  // ...
  target: ["web", 'es5'],
}
票数 3
EN

Stack Overflow用户

发布于 2021-02-20 23:44:24

您提供了两个babel配置-一个嵌入在webpack.config.js中,一个嵌入在babel.config.js中。非常肯定的是,webpack.config.js配置将优先,并敲开巴贝尔配置。所以,只需在webpack配置中使用rm的options param到babel-loader,然后继续使用babel配置文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66297291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档