Vite中导入Ramda报错‘does not provide an export named 'default'’的解决方法
解决Vite项目中Ramda的"does not provide an export named 'default'"错误
Ramda在新版本里改用纯ES模块规范了,不再提供默认导出——如果你写的是import R from 'ramda'这种默认导入代码,就会触发这个错误。下面是几种解决办法:
方案1:按需导入指定方法
直接挑需要的方法导入,还能减小打包体积:
import { map, filter, reduce } from 'ramda'; // 示例用法 const doubled = map(x => x * 2, [1,2,3]);
方案2:整体导入为命名空间
要是习惯用R当统一前缀,用命名空间导入语法就行:
import * as R from 'ramda'; // 示例用法 const doubled = R.map(x => x * 2, [1,2,3]);
方案3:修改Vite配置(不推荐)
如果非要保留import R from 'ramda'的写法,可以在vite.config.js里做如下配置,强制转换模块导出方式:
import { defineConfig } from 'vite'; export default defineConfig({ resolve: { alias: { ramda: 'ramda/dist/ramda.es.js' } }, optimizeDeps: { include: ['ramda'] } });
不过这种方法会让打包体积变大,也不符合ES模块的最佳实践,优先选前两种方案更稳妥。
内容的提问来源于stack exchange,提问作者Bon Andre Opina
相关产品推荐
相关产品推荐

