升级Rollup至2.48时导入uikit提示default未导出报错如何解决
Rollup 2.x 升级后 uikit 默认导出报错解决方案
该问题是Rollup 2.x对CommonJS模块的导出识别规则、插件配置参数发生变更导致,可按以下步骤排查修复:
1. 先升级适配2.x版本的官方插件
Rollup 2.x已废弃旧版社区插件,统一使用@rollup前缀的官方插件,确保你安装了正确版本的依赖:
npm install @rollup/plugin-alias @rollup/plugin-commonjs @rollup/plugin-node-resolve --save-dev
2. 修正插件配置
旧版插件的配置参数在2.x版本中有调整,重点修改alias和commonjs插件的配置项:
import alias from '@rollup/plugin-alias'; import commonjs from '@rollup/plugin-commonjs'; import resolve from '@rollup/plugin-node-resolve'; export default { // 其余rollup基础配置保持不变 plugins: [ resolve({ extensions: ['.js', '.json'] }), commonjs({ // 配置uikit的默认导出识别规则 defaultExports: (modulePath) => { if (modulePath.includes('uikit/dist/js/uikit.js')) return ['UIkit']; return true; } }), alias({ // 旧版Paths参数改为entries,Extensions改为小写extensions entries: { 'uikit-util': './node_modules/uikit/src/js/util', // 可选配置:直接给uikit指向ES模块源码,可直接避开CommonJS导出兼容问题 // 'uikit': './node_modules/uikit/src/js/index.js' }, extensions: ['.js', '.json'] }) ] }
3. 备选快速修复方案
如果不想调整配置,可直接修改uikit的导入写法,兼容CommonJS格式的导出规则:
// 原导入写法 // import UIkit from 'uikit'; // 修改为以下任意一种即可 import * as UIkit from 'uikit'; const UIkit = require('uikit');
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

