扩展
信息
如何开发扩展并推送到npmjs
如何识别的
大致的目录结构
node_modules/ // Node.js 依赖包
├── pkg-name // 相关模块
│ ├── lib/ // 工程目录
│ │ ├── response/ // 应用
│ │ ├── middleware/ // 中间件
│ │ └── index.js // 入口文件
│ └── package.json // 工程配置文件
会读取node_modules/pkg-name/package.json
解析并得到main
以入口文件的目录为工程目录
配置
package.json
{
// 官方 @alemonjs/XXX
// 三方 alemonjs-XXX
"name": "@alemonjs/test", // *
"version": "0.0.1", // *
"author": {
"name": "ningmengchongshui",
"email": "ningmengchongshui@gmail.com",
"url": "https://github.com/ningmengchongshui"
},
"type": "module", // *
"main": "lib/index.js", // *
"scripts": {
"build": "npx lvy build"
},
"export": {
".": "./lib/index.js", // *
"./package": "./package.json" // *
},
"keywords": ["alemonjs"], // *
"publishConfig": {
"registry": "https://registry.npmjs.org", // *
"access": "public" // *
},
"alemonjs": {
// alemonjs 相关配置,依赖于 package 导出进行读取
}
// 要发布模块,请确保没有以下内容。
// "private": true,
// "workspaces": ["packages/*"]
}
桌面
配置
package.json
{
"export": {
"./desktop": "./lib/desktop.js" // 桌面扩展入口脚本
},
"alemonjs": {
"desktop": {
// 图标(可选)
// 支持antd图标,如 antd.OpenAIOutlined
// https://ant.design/components/icon-cn
"logo": "public/logo.png",
// 指令输入框
"commond": [
{
"name": "test",
// 图标(可选)支持antd图标
"icon": "public/logo.png",
"commond": "open.test" // 发送指令
}
],
// 侧边栏
"sidebars": [
{
// 无图标则显示
"name": "test",
// 图标(可选) 支持antd图标
"icon": "public/logo.png",
"commond": "open.test" // 发送指令
}
],
// 平台(拥有此配置将无法被添加至config.value.apps)
"platform": [
{
"name": "test" // --login test
}
]
}
}
}
周期
package.js
// 被激活的时候。
export const activate = context => {}