На этой страницеЛокальные модули
Модули и импорты
Разделяйте код на локальные ES-модули внутри проверенного пакета.
Локальные модули
В .dgplugin можно разместить несколько JavaScript-файлов. Используйте относительные импорты с расширением .js.
Вспомогательная функция
Файл modules/greeting.js:
export function greeting(name) {
return `Привет, ${name.trim()}!`;
}
Точка входа main.js:
const _plugin = "donutgram";
import { greeting } from "./modules/greeting.js";
export default definePlugin({
async activate(api) {
await api.commands.register({
id: "hello",
title: "Показать приветствие",
placement: "composer",
async run() {
await api.ui.toast(greeting("Алиса"));
}
});
}
});
Для этой команды укажите ui.contribute / composer в манифесте.
Что доступно загрузчику
Загружается только проверенный исходный код внутри установленного пакета. У плагина нет загрузчика Node.js, require, fs, process, DOM и браузерного fetch.
Код из HTTPS-ответа нельзя превратить в новый модуль. eval и конструкторы Function заблокированы. QuickJS-байткод не является форматом распространения плагина.
Изоляция
Два плагина могут иметь свой modules/greeting.js: их окружения независимы. Каждый аккаунт также получает собственное выполнение плагина.
TypeScript
Типы SDK помогают редактору и сборщику. Перед упаковкой преобразуйте .ts в обычный JavaScript. Готовый пакет должен содержать поддерживаемые исходные файлы и корректную точку входа с маркером.