rollup-plugin-to-custom-chunk
废弃
推荐使用自动化的版本 mp-chunk-splitter。
插件功能
通过配置将匹配到的模块输出到指定的产物目录,解决小程序包大小超标的问题。例如:
- 改变
uni-app默认将node_modules下所有包都输出至common/vendor.js的行为。
使用
在你的 vite 或 rollup 配置文件中添加以下插件:
js
import { toCustomChunkPlugin } from '@minisheep/rollup-plugin-to-custom-chunk';
export default {
plugins: [
toCustomChunkPlugin({
'common/my-vendor': [
'@minisheep/three-platform-adapter',
'@minisheep/three-platform-adapter/wechat',
],
'sub-pack-2/vendor': [
'@minisheep/three-platform-adapter/dist/three-override/jsm/**',
'three',
'three/examples/jsm/**',
]
})
]
}这会将适配器部分的代码输出到 dist 的 common 目录的 my-vendor.js 文件, 而 three 相关代码输出到 dist 的 sub-pack-2 目录 vendor.js 文件,以起到平衡包大小的效果。
配置
ts
export type ChunkName = string;
/** 可以是 resolveId 匹配或 glob 表达式, 表达式支持见 picomatch, glob 匹配的是模块文件路径*/
export type ChunkMatcher = string[];
export type ToCustomChunkOptions = Record<ChunkName, ChunkMatcher>;
export function toCustomChunkPlugin(options: ToCustomChunkOptions): Rollup.Plugin {}调试
如果你不清楚你的配置哪里有问题,你可以在编译时设置环境变量 DEBUG=minisheep:to-custom-chunk 以检查配置生效情况。
例如:
shell
cross-env DEBUG=minisheep:to-custom-chunk npm run dev