1.1.0 • Published 5 years ago

mp-merge-cli v1.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

小程序分包合并命令行工具

工具主要提供微信小程序独立分包的合包功能,除此之外还提供独立微信开发者工具之外的代码编译、代码功能。让开发者不需要关心分包合并、代码编译、代码压缩等东西,支持CI流程引入和本地开发引入。

背景

小程序新的特性独立分包,我们可以把两个工程通过本项目命令合并为一个项目。各个项目开发时各自独立,在编译阶段合并在一起,这样各个小程序开发、访问各自独立。且不会有小程序跳转的弹窗,可以适应较大程序的分治管理。

本工具与具体的小程序框架无关,是建立在小程序分包的基础上的。目前支持下面几种开发框架的混合合并

  • 原生小程序
  • wepy1/2
  • kbone

原理

npm.io

安装

sudo npm i -g mp-merge-cli@latest

使用

如A为子项目,B为主项目,A项目build后产物路径相对当前路径为./indepent,B项目build后产物路径相对当前路径为../B/dist,A包的主入口为./pages/main。 则命令执行如下,工具会自动清空目录构建两个项目并注入脚本完成分包合并。

wepy1/2

mm cleanTargetOutput cleanSourceOutput independent -o './indepent' -O '../B/dist' -e './pages/main'

# 上下一样
mp-merge cleanTargetOutput cleanSourceOutput independent -o './indepent' -O '../B/dist' -e './pages/main'

kbone

因kbone依赖开发者工具的ES6转ES5或增强编译,所以本工具对构建产物进行babel转化和代码uglifyjs压缩

mm babelCompile uglifyjsCompress cleanTargetOutput cleanSourceOutput independent -r "kbone" -c "npm run build:mp" -o './dist/mp' -O '../B/dist'

参数说明

参数名含义默认值是否必传
-c或--sourceCmd源目录编译命令npm run build
-C或--targetCmd目标目录编译命令npm run build
-o或者--sourceOutput源目录产物目录
-O或者--targetOutput目标目录产物目录
-e或者--enterPage分包入口页面相对路径源目录产物目录app.json里第一个page
cleanTargetOutput清空目标目录产物目录false
cleanSourceOutput清空源目录产物目录false
independent是否独立分包false
preloadSubpackages是否分包预加载false
babelCompile是否对源目录产物进行babel7编译false
uglifyjsCompress是否对源目录产物进行uglifyjs代码压缩false
-g或--globuglify代码压缩传入的glob匹配压缩文件'./*/.js'
-i或--globIgnoreuglify代码压缩传入的glob忽略文件'/node_modules/'

调试

其中DEBUG=mm:*为环境变量,调试用。

DEBUG=mm:* xxx

帮助

安装后可以命令行查看命令

mm --help

特性

2020-06-15 v1.0.1增加分包预加载支持 2020-06-29 v1.1.0增加kbone合包支持,babel代码编译,uglifyjs代码压缩