uni-app开发微信小程序在分包pages_extra/ai/ai页面(npm i marked下载的插件)使用import导入marked插件之后主包体积变大了 打包不了了,使用packOptions matrix 在package.json配置具体代码实现
时间: 2024-09-11 09:02:33 浏览: 127
在使用uni-app开发微信小程序时,如果在分包中引入了npm包(比如marked),确实可能会引起主包体积增大。这是因为uni-app默认会将所有分包中使用的npm包导入到主包中。为了解决这个问题,你可以使用webpack的external功能,将某些依赖标记为外部依赖,这样这些依赖就不会被打包进主包,而是留待运行时通过 CDN 或其他方式动态加载。
在 `package.json` 中配置 `packOptions.matrix` 来实现这一点,可以使用 `webpack-chain` 的方式来修改webpack配置,使得特定的npm依赖不会被打包进主包。以下是一个基本的配置示例:
```json
{
"uni-app": {
"packOptions": {
"matrix": {
"define": {
"process.env.UNI_SUBPACKAGE": true
},
"externals": {
"marked": "marked"
}
}
}
}
}
```
在这个配置中,`externals` 字段指定了 `marked` 这个模块为外部依赖,这意味着它不会被打包到主包中。同时,`define` 字段设置了环境变量 `UNI_SUBPACKAGE`,这样可以在代码中根据这个变量来动态判断是否执行某些操作。
请注意,这只是示例代码,具体配置可能需要根据实际的项目结构和需求进行调整。在实际操作中,你可能还需要编写一些辅助代码来处理运行时的依赖加载。
阅读全文