Webpack4+;巴别塔8&x2B;coreJs@3

Webpack4+;巴别塔8&x2B;coreJs@3,webpack,babeljs,commonjs,Webpack,Babeljs,Commonjs,这是入口: // index.js const {test} = require('./handle') test() 这是一个公共JS模块 // handle.js module.exports = { test() { console.log('>>>>> handle get trigger') console.log(typeof []) } } 编译成功,然后在运行时出现此错误 Uncaught TypeError: Can

这是入口:

// index.js
const {test} = require('./handle')
test()
这是一个公共JS模块

// handle.js
module.exports = {
  test() {
    console.log('>>>>>   handle get trigger')
    console.log(typeof [])
  }
}
编译成功,然后在运行时出现此错误

Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'

当我使用ES6模块编写此文件时,错误也会消失。

@babel/plugin transform runtime
导入
添加到我的文件中! 因此,它成为ES6模块和CommonJs的混合使用! 这就是问题的根源

因此,我们只能使用Es6module或添加babel插件
@babel/plugin transform modules commonjs

{
                test: /\.jsx?$/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ["@babel/preset-env"],
                        plugins: [
                            [
                                "@babel/plugin-transform-runtime",
                                {
                                    "corejs": 3
                                }
                            ],
                            "@babel/plugin-syntax-dynamic-import"
                        ]
                    }
                },
                include: /src/
            },