简体   繁体   English

如何将 async..await 编译为 es5?

[英]How to compile async..await to es5?

I want to compile async..wait to es5, but when a folder include a package.json, it can't be compiled!我想编译async..wait到es5,但是当一个文件夹包含一个package.json时,就编译不出来了! why?为什么? I search for this many times by google, but it is failed,how to do it,?我用google搜索了很多次,但都失败了,怎么办? Looking forward to your reply! thank you for help!期待您的回复!谢谢您的帮助!

Directory Structure enter image description here目录结构在此处输入图像描述

.babelrc .babelrc

{
  "presets": [
    [ "@babel/preset-env" ],
    [ "@babel/preset-react"]
  ],
  "plugins": [
    ["@babel/plugin-transform-runtime", { "corejs": 3}],
    "transform-class-properties",
    ["import", { "libraryName": "antd", "libraryDirectory": "es", "style": true}, "antd"]
  ]
}

webpack.config.js webpack.config.js

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

function resolve(dir) {
  return path.resolve(__dirname, '..', dir)
}
module.exports = {
  mode: 'production',
  entry: './src/pdfjs-dist1/build/pdf.js', // compiled, no package.json
  // entry: './src/pdfjs-dist2/build/pdf.js', // NO compiled, include package.json
  output: {
    path: resolve('./dist'), // 打包后的文件存放的地方
    filename: 'js/[name].[chunkhash:8].js',
    chunkFilename: 'js/[name].[chunkhash:8].js',
    publicPath: '/',
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/i,
        use: [
          'babel-loader',
        ],
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({ // 根据模板插入css/js等生成最终HTML
      filename: './index.html', // 生成的html存放路径,相对于 path
      template: './public/index.html', // html模板路径
      hash: true, // 为静态资源生成hash值
      minify: { // 压缩HTML文件
        removeComments: true, // 移除HTML中的注释
        collapseWhitespace: true, // 删除空白符与换行符
      },
    }),
  ],
  optimization: {
    splitChunks: {
      chunks: 'all',
      maxInitialRequests: Infinity,
      minSize: 8000,
      cacheGroups: {
        common: {
          test: /[\\/]src[\\/](utils|components)/,
          name: 'common', // todo: 区分 component / utils
        },
      },
    },
  },
}

pdf.js pdf.js

const ap = () => {
  console.log('test async')
}

const aa = async () => {
  await ap()
}

aa()

package.json包.json

{}

remark评论

"webpack": "^5.1.0",
"@babel/runtime-corejs3": "^7.14.7",
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.14.7",

.babelrc config files only affect the files in the specific package containing the config, meaning that the sub-packages will be unaffected. .babelrc配置文件只影响包含配置的特定包中的文件,这意味着子包将不受影响。 You'll want to use a babel.config.js .你会想要使用babel.config.js https://babeljs.io/docs/en/config-files#project-wide-configuration https://babeljs.io/docs/en/config-files#project-wide-configuration

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM