报错内容
Rollup requires that your Babel configuration keeps ES6 module syntax intact. Unfortunately it looks like your configuration specifies a module transformer to replace ES6 modules with another module format. To continue you have to disable it.
Most commonly it’s a CommonJS transform added by @babel/preset-env - in such case you should disable it by adding modules: false
option to that preset;
原因一 :
在写单元测试的时候加了babel配置,内容如下
module.exports = {
'presets': [
[
'@babel/env',
{
'targets': {
'node': 'current'
},
'modules': 'auto'
}
]
],
'plugins':[
'@babel/plugin-transform-modules-commonjs'
]
}
这导致了一个问题:跑单测可以顺利进行,但是构建时由于plugins里指定了转换语法,导致构建失败。因为目前构建都是要求Babel配置保持ESModule语法.报错信息:
Rollup requires that your Babel configuration keeps ES6 module syntax intact. Unfortunately it looks like your configuration specifies a module transformer to replace ES6 modules with another module format. To continue you have to disable it.
Most commonly it’s a CommonJS transform added by @babel/preset-env - in such case you should disable it by adding modules: false
option to that preset
尝试一:
将modules配置改为false,单测通过,构建不通过。提示内容不变
原因:
plugins配置了模块转换插件
尝试二:
将plugins配置去掉,将modules配置改为‘auto’
报错提示:
“UMD MinifIE的Module Could not resolve ‘./xxx’ ” from “xxx”
原因:
项目中有个index.js中引入了同目录文件夹下的index.vue文件,但是引入方式为“impor ‘xxx’ from ‘./x-x-x’”。
尝试三:
补充完整路径为"import ‘xxx’ from ‘./x-x-x/index.vue’"
单测成功,构建成功。
最终babel.config.js配置如下
module.exports = {
'presets': [
[
'@babel/env',
{
'targets': {
'node': 'current'
},
'modules': 'auto'
}
]
]
}
完结。