1.0.0 • Published 3 years ago

wps-jsaddon-packer v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

WPS JavaScript 加载项打包工具

安装

  1. 全局
    npm i -g wps-jsaddon-packer
  2. 项目
    npm i wps-jsaddon-packer
  3. 编译好的 exe 命令行工具,下载它 wpspublish.exe

    如果你不喜欢 npm 包或者不用 NodeJS,可用编译好的 .exe 工具,用法都是一样的。

    为了方便使用,请将其放入 C:/windows/ 下,也可以放在其他地方然后将其路径添加到系统环境变量path中即可。

命令

wpspublish [options]
参数说明
help显示帮助信息。
config创建配置文件。
reConfig重置配置文件。
pack构建加载项(离线模式将得到 '.7z'压缩包和 publish.html 文件,在线模式将只有 publish.html)。

注意⚠️:不带参数或者参数错误将进入自定义打包。如果想退出当前命令进程即可(一般 ctrl+C)。

pack 相当于官方推荐开发工具中提到的 build 加 publish 两个步骤。

说明

  1. 自定义打包,压缩用的是 7zip-min ,具体命令或者 API 可以参考其文档。
  2. 实际上你的加载项并不是真的需要 WPS jsSDK(wpsjs-rpc-sdk),它只是在加载项安装到 WPS Office 客户端时才用得上。

    安装到时候才用得上,其他功能实现页面中不必引入它。

  3. 在线模式不需要压缩,webpack 之类的工具可能更适合。本文提及的打包压缩仅针对离线模式。
  4. 安装页: publish.html 对离线模式和在线模式都是通用的。当你选择在线模式时,本工具只创建安装页面,不会进行压缩,也不会做任何加载项源文件移动处理。

    publish.html: 不一定非得加这个名字,页面含 wpsjs-rpc-sdk 即可.

  5. 并不总是需要 package.json 这些开发时生成的文件。毕竟加载项信息均来自 WPS Office 客户端 JS 加载项文件夹中的 publish.xml。因此,任何开发依赖都不必加入到上线发布文件中。
  6. 工具支持加载项批量打包构建。
  7. wpspublish configwpspublish reConfig 得到的 JSON 文件都是丑化的,你可以自行格式化。

注意

工具并没有预设包含或排除哪些文件,离线模式打包时请自行处理哪些文件要被压缩到加载项源文件中。

工具连 node_modules 目录都没有排除。因为,正式发布时你可能需要进行 uglify、minify 处理,届时文件可能在另外的文件夹,因此工具不需要做这样的预判。

批量构建配置说明

通过 wpspublish config 命令会创建一个 JSON 文件,apps 项就是要配置部分。

{
    "apps": [
        {
            "name": null,
            "version": null,
            "addType": null,
            "online": true,
            "publishURL": "",
            "zipCommand": [],
            "packageJsonFile": "package.json",
            "saveTo": ""
        }
    ]
}
  1. name:加载项名称。
  2. version: 加载项版本。
  3. addonType:加载项类型,限定之一:etwpswpp;
  4. online: 是否发布为【在线模式】,true:在线模式,false:离线模式。
  5. publishURL:加载项的下载 url主路径(必须用 "/"结尾);
  6. zipCommand:压缩命令,参考 7zip-min 的文档:7zip-min命令指南

    注意: 如果 "online": true ,不会进行压缩(加载项发布为【在线模式】时不需要压缩)。

  7. packageJsonFile :加载项开发的 package.json 文件的路径,这个主要是当 name、version 等项是 null 时才会通过 package.json 读取加载项相关信息,如果你已经定义了name、version等信息,可以忽略 packageJsonFile 项。(换言之,不管有没有 package.json 都是可以构建的)
  8. 有多个加载项时,在apps数组中再来一组 {name...} 并配置即可。

其实一个加载项是可以同时发布为【在线模式】和【离线模式】的,你可以自行处理安装文件让用户自行选择安装哪一种模式,只要同时部署相应的文件到服务器供用户下载、供加载项调用即可。

1.0.0

3 years ago