Numerous Philanthropic Misanthropes

    @wecity/weshop
    TypeScript icon, indicating that this package has built-in type declarations

    2.3.10 • Public • Published

    weshop 工具

    介绍

    模块化开发是一种开发模式,而 weshop 合包工具是为了实现模块化开发这种模式而诞生的CLI工具。

    主要解决模块化独立开发后,保证子模块的独立开发和主模块的合包功能能够相互独立,同时提供一些其他的如代码规范校验等功能。

    安装

    安装 weshop

    npm install -g @wecity/weshop
    

    安装结束之后,你可以通过 weshop -v 命令来查看版本。

    环境要求

    • node v8+。node -v 查看当前的 Node 版本。
    • git v2+。git --version 查看当前的 git 版本。

    weshop.config.json 配置项说明

    {
      // 类型
      "type": "miniprogram",
      // ssh 连接限制
      "sshLimit": 10,
      // 主包配置,仓库地址和分支
      "mainPackage": {
        "url": "xxx/main-app.git",
        "branch": "master"
      },
      // 子包配置,仓库地址和分支
      "subPackages": [{
          "url": "xxx/gss-canlian.git",
          "branch": "master"
        }
      ],
      // 开发依赖,仓库地址/分支/拷贝路径
      "dependencies": [{
          "url": "xxx/gsd-kit.git",
          "branch": "master",
          // 拷贝路径,从哪到哪,from -> to
          "copy": [{
              "from": "dist/components/gsd-ui",
              "to": "components/gsd-ui"
            },
            {
              "from": "dist/components/dgd-sdk",
              "to": "components/dgd-sdk"
            },
            {
              "from": "dist/pages/gsd-ui",
              "to": "pages/gsd-ui"
            }
          ]
        },
        {
          "url": "xxx/main-app.git",
          "branch": "master",
          "copy": [{
            "from": "main-app.js",
            "to": "main-app.js"
          }]
        }
      ],
      // 环境配置,仅支持 dev/test/stage/prod 自由配置
      "env": {
        "dev": {
          // config 内容最终会写入项目的 constant/config.js 进行替换覆盖
          "config": {
            "appid": "xxx",
            "paasid": "gss",
            "projectName": "GSS主框 dev 环境",
            "domain": "https://xxx.cn",
    	"cdnDomain": "https://xxx.com"
            // 其他参数可自定义
          }
        },
        "prod": {
          "config": {
            "appid": "",
            "paasid": "gss",
            "projectName": "主框 prod 环境",
            "domain": "https://xxx.cn",
    	"cdnDomain": "https://xxx.com"
          },
          // CDN 配置
          "cdn": {
            // 图片域名
            "publicPath": "https://xxx.com/",
            // 是否根据 URl 路径生成文件夹,默认是 true
            "dirs": true,
            // 最大可接受的图片(告警)
            "maxSize": 51200,
            // 哪些图片不需要 CDN 处理
            "excludes": [
              "markers",
              "home-icon"
            ]
          },
          // 压缩配置
          "uglify": {
            // 是否去除 console(耗时)
            "dropConsole": false,
            // 哪些文件无需压缩
            "excludes": [
              "thrid/echarts/index.js"
            ]
          }
        }
      },
      // 支持修改微信全局函数
      "wxFn": {
        "Page": "getApp().sdk.Page"
      }
    }
    

    命令简介

    # 合并
    weshop a --env dev
    
    # 本地代码合并
    weshop a -d
    
    # 更新依赖
    weshop u
    
    # 检查代码
    weshop lint
    
    # 查看更新日志
    weshop changelog

    更新命令 update

    更新依赖,读取 weshop.config.json 里 dependencies 配置的依赖,并更新到当前项目的指定目录

    使用方法

    weshop update
    # 简写命令 weshop u

    注意事项

    ::: tip 优先使用主模块的 weshop.config.json

    • 对于子模块更新依赖时, weshop 会先从主模块拉取一份最新的 weshop.config.json 文件,然后根据这个文件来进行更新。
    • 对于子模块 weshop.config.json 只有第一行的 mainPackage 修改是有效的,可以通过修改 branch 来决定拉取主程序哪个分支的 weshop.config.json。 :::

    ::: tip 更新失败? 由于 Window 系统下的 微信开发者工具 会占用当前项目的文件,因此 Window 用户使用 updateassemble 命令的时候,需要先关闭 微信开发者工具。 :::

    合包命令 assemble

    将主模块和子模块合并成一个小程序

    使用方法

    weshop a
    # 详细命令 weshop assemble

    环境选择

    参数使用方法是 --env <env> 。根据 weshop.config.json 里的 env 参数来切换合包环境,目前可选环境有 stage test prod test。默认是 dev 环境。

    weshop a --env prod

    本地合包

    进行本地合包时,会选择使用本地的代码进行合并,方便进行合包调试。

    weshop a -d

    注意事项

    使用合包命令 weshop a 时,主模块还是子模块会稍微有不同的实现。

    1. 主模块

    主模块下,subPackages 的配置才会生效,可以自行选择需要合包的仓库。合包结果包含主模块和 subPackages 里的所有项目。

    2. 子模块

    子模块下,会根据 mainPackagedependencies 的配置来拉取对应的主模块和组件依赖。合包结果只包含当前子模块和主模块

    更新命令 update

    可以更新依赖文件,还可以更新主模块的 weshop.config.json / main-app.js 等依赖文件

    weshop update

    初始化脚手架 init

    初始化前,请先确定 ~/.weshoprc.json 已经配置了 template.maintemplate.sub 的仓库地址。

    weshop init

    本地配置 config

    weshop config      		查看命令
    weshop config list 		查看配置
    weshop config get <key>         获取配置
    weshop config set <key> <value> 设置配置
    weshop config delete <key>      删除配置

    Install

    npm i @wecity/weshop

    DownloadsWeekly Downloads

    1

    Version

    2.3.10

    License

    ISC

    Unpacked Size

    380 kB

    Total Files

    122

    Last publish

    Collaborators

    • zystylish
    • brian_zhang
    • legendlu
    • fenfeizeng
    • colinczhu
    • easonruan
    • yikazhu
    • daniel-dx
    • domy
    • delenzhang
    • vickiliang
    • derrickliu
    • xiaoyaojones
    • smileswlin
    • jillysong
    • allennzhang
    • sharryliao
    • pechelhuang
    • phspan