uni-app开发微信小程序在分包pages_extra/ai/ai页面(npm i marked下载的插件)使用import导入marked插件之后主包体积变大了 打包不了了,使用packOptions matrix 在package.json配置具体代码实现
时间: 2024-09-10 21:09:32 浏览: 40
在使用uni-app开发微信小程序时,如果在`pages_extra/ai/ai`页面中通过`import`导入了`marked`插件,并且导致主包体积增大而无法打包,这通常是因为`marked`被包含在了主包中。为了优化包体积,可以通过配置`packOptions.matrix`来实现分包的按需加载,使得只有在实际需要时才加载对应的插件或页面,而不是将所有内容都包含在主包中。
具体的实现步骤如下:
1. 在`package.json`文件中配置`packOptions.matrix`属性,指定分包加载的规则。
2. 使用`ConditionExportPlugin`插件,该插件可以帮助我们在打包时根据条件导出特定的分包,确保`marked`插件只被打包到其实际使用的分包中。
示例代码如下:
```json
{
"uni-app": {
"app-plus": {
"distribute": {
"packOptions": {
"matrix": {
"conditions": [
{
"name": "aiPage",
"base": {
"name": "$app",
"path": "pages.json"
},
"subpackages": [
{
"name": "ai",
"path": "pages_extra/ai",
"rules": [
{
"import": "marked"
}
]
}
]
}
]
}
}
}
}
}
}
```
在上面的配置中,我们定义了一个名为`aiPage`的分包条件,指定了基础包的名称和路径,并在`subpackages`中定义了`ai`分包的路径和规则。`rules`数组中的`import`规则指明了当导入`marked`时,`marked`应该被包含在`ai`分包中,而不是主包。
完成这些配置后,当你运行`npm run build:mp-weixin`命令进行打包时,`marked`应该会被正确地分包到`ai`中,而不会影响主包的体积。
阅读全文