1.1.3 • Published 1 year ago

jackie-miniapp-shaking v1.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

jackie-miniapp-shaking 微信小程序摇树优化工具

本插件是在miniapp-shaking插件基础上做的开发 用于易职邦整合项目打包代码使用 新增部分功能

原插件使用demo请看这里:demo

原插件设计文档请看这里:文档

1.如何使用

首先安装npm包

npm i jackie-miniapp-shaking -D

然后在项目下新建一个文件,例如:shaking.js

const path = require('path');
const { DependContainer } = require('./node_modules/jackie-miniapp-shaking');
const options = {
  sourceDir: path.join(__dirname, 'miniprogram'),
  targetDir: path.join(__dirname, 'dist'),
  analyseDir: path.join(__dirname, 'analyse'),
  isSplitNpm: true,
  needCustomTabBar: false,
  excludeFiles: ['package-lock.json', 'package.json', 'shaking.js', 'mock.config.json'],
  // 需要打包的主页
  needPages: [
    "pages/home/page",
    "pages/my/page",
    "pages/customize_one/page",
    "pages/customize_two/page",
    "pages/customize_three/page",
    "pages/customize_four/page"
  ], 
  // 需要打包的分包
  needSubPackages: [
    'subPackages/webView',
    'subPackages/honorbook',
    'subPackages/contactBook',
    'subPackages/repository',
    'subPackages/company',
    'subPackages/course',
    'subPackages/recruit',
    'subPackages/work',
    'subPackages/service',
    'subPackages/resumeInvite',
    'subPackages/resume',
    'subPackages/personal',
    'subPackages/point',
    'subPackages/alumni',
    'subPackages/staff',
    'subPackages/singleCard',
    'subPackages/lucky',
    'subPackages/activity',
    'subPackages/news',
    'subPackages/tool',
    'subPackages/shop/index',
    'subPackages/shop/group',
    'subPackages/shop/product',
    'subPackages/shop/address',
    'subPackages/shop/coupons',
    'subPackages/message',
    'subPackages/form',
    'subPackages/shop/order',
    'subPackages/shop/share',
    "subPackages/custom",
    "subPackages/question"
  ],
  // 第三方appid
  extAppid: ''
};

const instance = new DependContainer(options);
instance.init().catch(err => console.error(err));

然后执行node shaking.js,命令完成后会把摇树后的代码输出到dist目录下,直接上传这个目录即可

2.参数Options介绍

  • sourceDir:你的源码目录
  • targetDir: 摇树之后输出的目录,最好定义在你的源码目录之外
  • analyseDir:依赖图的输出目录,摇树优化之后会生成代码的依赖图,类似微信小程序工具那种,不过比他更精细。
  • groupName:项目组名称,对于一个大型公司来说,它的项目公组件、页面可能是有十几个项目组一起开发的,然后在分发成不同的小程序, 这个项目组名称可以去除掉其他组的业务逻辑,从而大大缩小程序体积,提高性能,使用文档:组名的作用
  • needDeleteGroupCode 是否需要删除业务组代码,使用文档:删除业务组代码
  • staticFileExtends:静态文件扩展名,这里面预设了一些,你也可以自己定义。
  • fileExtends:小程序文件扩展名,一般不用传。
  • excludeFiles:需要排除遍历的的一些文件目录,仅限于在一级目录下的文件。
  • isSplitNpm: 是否需要独立分包,这个是更高级的摇树优化,使用文档:移动独立npm包
  • excludeNpms:独立分包需要排除的npm包名称,用于解决一些特殊的情况。
  • needCustomTabBar:是否使用了微信的自定义tabbar,如果使用了必须设置为true,否则不会遍历。
  • needPages: 要打包的主包。
  • needSubPackages: 要打包的分包。

3. 注意事项

  • 分包的目录最好在一级目录之下,参考官网分包
  • 如果源码目录下包括了一些脚本文件,如上面的shaking.js,可以加入excludeFiles排除

changelog:

  • bugfix:修复删除业务代码正则匹配越界问题
  • bugfix:修复异步文件没有递归遍历问题
  • bugifx:修复window环境子包正则校验错误问题
  • 增加删除业务代码功能
  • 增加打包分包/主包功能
  • 增加第三方appCli上传所需appid
1.1.1

1 year ago

1.1.0

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago