Skip to content

文件目录结构

此部分会帮助你了解,通常情况下,一个插件的文件目录结构。

插件至少要有一个 plugin.json 作为入口,并配置 logo 字段以及 main 或者 preload 字段。

一个相对完整的插件可能是这样的:

shell
path/to/{plugin}
|-- src-utools/
|   |-- preload.js
|   |-- node_modules/
|   |-- logo.png
|-- src/
|   |-- index.js
|-- index.html
|-- plugin.json
|-- package.json
shell
path/to/{plugin}
|-- node_modules/
|-- src/
|-- public/
|   |-- .utools/
|   |   |-- preload.js
|   |   |-- node_modules/
|   |   |-- package.json
|   |-- logo.png
|   |-- plugin.json
|-- index.html
|-- vite.config.js
|-- package.json
shell
path/to/{plugin}
|-- node_modules/
|-- src/
|-- public/
|   |-- .utools/
|   |   |-- preload.js
|   |   |-- node_modules/
|   |   |-- package.json
|   |-- logo.png
|   |-- plugin.json
|   |-- index.html
|-- webpack.config.js

源代码

utools 的插件项目中,源代码可以被分为两部分:

一部分是 utools 插件基座识别的代码,包含 plugin.jsonpreload.js 以及 LOGO。

另一部分则是前端渲染的代码,这部分代码其实也属于 utools 插件基座的一部分,当你使用原生 html + js 的方式来开发插件,这部分代码并不需要被特别区分,直接与 utools 插件基座的代码一起打包就可以。

但是通常我们在开发过程中可能会使用各种的工具来辅助开发,比如 vitewebpack 等等,也可能会引入各种前端框架,比如 vuereactsvelte 等等,而这些代码并不是直接可以被 utools 识别的,当我们打包插件前应该先将框架代码打包成普通的 html 、js 以及 css 文件,然后通过 preload.jsonmain 字段加载。

第三方依赖

当你使用第三方依赖时,根据项目情况进行区分:

当你使用前端依赖时,只需要在项目的根目录下安装即可,对前端项目进行正常的打包。

当你使用 nodejs 的第三方依赖时,应当保证你的模块存在于 preload.js 同级目录,并且不要对它们进行任何打包操作,保证提交插件时的目录结构不变,并且源码清晰可读。

资源文件

在使用 vite 或者 webpack 打包项目时,默认会将 public 目录下的文件直接复制到插件目录下,所以你可以直接将 logo.pngplugin.json 等文件放在 public 目录下即可。

基于此,第三方依赖也可以放在 public 目录下,但是需要确保插件目录下不会出现同名文件,造成资源冲突。

插件打包

当你对插件进行时,打包时选择的 plugin.json 所在的目录将会被全部打包到插件安装包中,因此你需要保证此目录下仅包含插件所需要的文件。

关于插件打包时,请查看文件资源清洁的 FQA 部分。