'*.mjs' file or a '*.js' file where the package.json contains '"type": "module"'
Module not found: Error: Can't resolve @babel/runtime/helpers/esm ...
问题链接:
https://github.com/webpack/webpack/issues/11467
简单来说就是webpack5之后,加入了对引入mjs等的strict模式并且默认启用,导致一些项目import会有问题。
同时确认自己的webpack版本和babel runtime的版本尽可能是最新的
解决方法是在webpack的config下面的module.rules加入以下:
{
test: /\.m?js/,
resolve: {
fullySpecified: false,
},
},
使用webpack-chain的修复方式,苦于不知道resolve那一步怎么写,找了很久终于找到了解决办法
https://github.com/neutrinojs/webpack-chain/issues/296
https://github.com/vuejs/vue-cli/blob/next/packages/%40vue/cli-service/lib/config/base.js#L16-L21
webpackConfig.module
.rule('esm')
.test(/\.m?jsx?$/)
.resolve.set('fullySpecified', false)