rollup-plugin-to-custom-chunk
插件功能
将匹配到的模块输出到指定的产物目录,解决小程序包大小超标的问题。例如:
- 改变
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