# mini-program-webpack-loader **Repository Path**: hanwenbo/mini-program-webpack-loader ## Basic Information - **Project Name**: mini-program-webpack-loader - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-06 - **Last Updated**: 2021-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## mini-program-webpack-loader 基于 webpack 4.0 的小程序打包工具。 **项目依赖 async/await, Set/Map, spread 等 es6+ 语法** ## 安装 ``` bash $ npm i mini-program-webpack-loader --dev ``` ## 示例 [小程序插件项目和普通小程序项目打包示例](https://github.com/realywithoutname/mini-loader-plugin-demo),插件开发可以 clone 该仓库进行开发。 普通小程序项目可以使用其中的 `build/webpack.comfig.mini.js` 配置来配置自己的项目,也可以直接使用这个仓库作为模板进行开发。 ## 介绍 该工具主要解决小程序难以集成更多的成熟工具的问题。其次支持多个小程序项目共建。 该工具由两部分组成,loader 和 plugin。 ### 能力 - 支持在小程序项目中使用 webpack 的所有能力 - 支持在 wxml, wxss, wxs, json 文件中使用模块别名 - 支持全局注册自定义组件 - 支持多小程序项目合并 - 支持小程序项目分析 ### 插件 #### 使用 ``` javascript const MiniPlugin = require('mini-program-webpack-loader').plugin; module.exports = { ..., // webpack 其他设置 plugins: [ new MiniPlugin({ ... // 参数 }) ], ... // webpack 其他设置 } ``` #### 参数
| extfile | `true` | 打包主包下的 ext.json(默认值) |
| `false` | 不打包 ext.json | |
| `String` | extfile 文件路径 | |
|
commonSubPackages |
`Boolean` |
自动把 subpackages 中子包独自使用的 js 文件打包到子包内。默认值为 `true` |
|
resources |
`Array` |
提供资源的目录。 除了所有入口所在的目录,src目录,node_modules,其他目录需要在这里添加否则可能导致路径计算错误。
其中 `path/to/src`为项目目录, `path/to/shared` 为多个项目公用的目录。
|
| entry | `Object` | 每个 key 必须为 webpack 对应的 entry 配置的绝对路径。值为一个对象。 |
|
`entry.accept`
|
`Object`
|
accept 会从对应的入口配置中读取对应的字段,进行保留。即如果 entry 中设置了入口文件配置,则不在 accept 中的字段,都会被直接删除。 |
|
`entry.accept[property]`
|
`any`
|
对于非特殊说明的字段,因为对应入口有了配置就会删除不在 accept 对应中的字段,如果希望保留其中部分字段可以通过设置对应 key 的值为 `true` |
|
`entry.accept.pages`
|
`Array` | `true`
|
如果值是数组,则会从当前入口文件的 `pages` 字段获取对应的页面,其他页面会被丢弃。`true` 值会保留所有的页面,配合 `ignore.pages` 可以丢弃其中部分不用的页面 |
|
`entry.accept.usingComponents`
|
`Array` | `true`
|
如果值是数组,元素的值应该是入口文件的 `usingConponents` 字段对应的key,表示要保留的组件,不在数组中的其他组件会被丢弃。`true` 值会保留所有的组件,配合 `ignore.usingComponents` 可以丢弃其中部分不用的组件 |
|
`entry.ignore`
|
`Object` |
ignore 配置用于删除通过 accept 保留的配置。目前仅支持 pages。 |
|
`entry.ignore.pages`
|
`Array`
|
可以删除 pages 和 subpackages 里面的页面 |
|
`entry.ignore.usingComponents`
|
`Array`
|
不加载对应入口文件 `usingConponents` 字段对应组件 |
|
`beforeEmit(compilation, miniLoader)`
|
`Function`
|
打包完成,输出到目录前回调,你可以在这里对内容进行最后的修改 |
|
`compilationFinish(err, stat, appJson)`
|
`Function`
|
打包完成后回调 |
|
`forPlugin`
|
`Boolean`
|
以插件方式构建,入口文件和普通 app.json 一致 |