使用rollup构建报错

报错内容

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'
			}
		]
	]
}
完结。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值