Skip to content

Add-ons

插件扩展系统

  • 写入 userData folder extensions

设计

Install

安装插件有多种渠道。

  • [x] 通过 npm 安装
  • [ ] 通过 git 安装
  • [ ] 通过 url 安装
  • [ ] 通过本地文件安装

如何通过 npm 设计本地插件模块

  • 在用户的临时文件目录,通过 npm install 安装 node_modules
  • 通过 Node API module.paths.push(),使得可以在插件中 require 自定义安装的 npm 模块。
ts
const addonsFolder = getAddonsFolder()
const nodeModulesFolder = path.join(addonsFolder, 'node_modules')
// add user addons node_modules to require.resolve
module.paths.push(nodeModulesFolder)

// ESM 不再有 module 变量
ts
const a = require('@user/addon-a')

Break

升级到 Electron@29 ESM 后,不再有 require。

ts
// 引入环境创建的 addon require
import { require } from '@/electron/env'

npm@8 drop programmatic API

lock to npm@7