配置@rollup/plugi-commonjs插件处理混合模块

基础环境

rollup ^3.0.0

rollup的treeshake

测试包为lodash-es。

rollup的treeshake默认是开启的。

测试:将rollup的treeshake关闭

treeshake:false,重新打包后的文件大小为504KB。

treeshake:true,重新打包后的文件大小为6KB。

rollup插件rollup-plugin-delete,在bundling之前删除指定文件或文件夹

rollup插件rollup-plugin-commonjs

报错:RollupError: "default" is not exported by "node_modules/lodsh/isPlainObject.js"

使用@rollup/plugin-commonjs替换rollup-plugin-commonjs

报错: RollupError: "TreeNode" is not exported by "node_modules/ant-design-vue/es/vc-tree/index.js"。

解决方案:

使用@rollup/plugin-commonjs替换rollup-plugin-commonjs

使用@rollup/plugin-node-resolve替换rollup-plugin-node-resolve

参考:https:/rollupjs.org/troubleshooting/#error-name-is-not-exported-by-module

@rollup/plugi-commonjs插件配置如下:

js 复制代码
const commonjs = require('@rollup/plugi-commonjs')

plugins: [
    commonjs({
        include: ['node_modules/**'],
        exclude: ['node_modules/lodash-es', 'node_modules/antd/**']
    })
]

一个esm文件中使用了require,导致require的文件未被引入。

修改@rollup/plugi-commonjs插件配置如下

js 复制代码
const commonjs = require('@rollup/plugi-commonjs')

plugins: [
    commonjs({
        include: ['node_modules/**'],
        exclude: ['node_modules/lodash-es', 'node_modules/antd/**'],
        transformMixedEsModules: true //  混合模块转换
    })
]

transformMixedEsModules

类型:布尔

默认值:false

指示插件是否启用混合模块转换。这在包含ES导入语句和CommonJS require表达式的模块混合的场景中很有用。如果require调用应转换为混合模块中的导入,则设置为true,如果require表达式应在转换后继续存在,则设置成false。如果代码包含环境检测,或者您正在为对ElectronJS等require调用进行特殊处理的环境进行编码,则后者可能很重要。另请参见"忽略"选项。

相关推荐
大文说跨境2 分钟前
多账号环境隔离方案技术选型:指纹浏览器、VPS 与云手机的三种架构对比
java·开发语言·前端
咕白m6254 分钟前
使用 C# 将 TIFF 转换为 PDF
前端·c#
全栈项目管理程序猿7 分钟前
ArcGIS JS 基础教程(28):图层渲染顺序管理
前端·javascript
huakoh10 分钟前
MCP 工具报错走哪条通道:三条探针的最小复现检查
前端
用户0333074139517 分钟前
ParadeDB 的 pg_search 0.26 把十词 BM25 搜索从 129ms 降到 29ms
前端
不爱说话郭德纲27 分钟前
从“点点点”到一键出包:我把 uni-app x Android 离线打包做成了脚本
android·前端·uni-app
Lstone736433 分钟前
从 Jetpack Compose 到 CMP:跨平台开发学习笔记
前端
deli00737 分钟前
多加一粒沙,整堆为什么就塌了?sandpile 模型 20 万粒实测
前端
涛涛ing39 分钟前
乱序HTML流正式进入浏览器:前端流式渲染的“框架特权”被终结了
前端
__sjfzllv___40 分钟前
在职前端Leader学习/转行 AI Agent -DAY73
前端