Documentation Index
Fetch the complete documentation index at: https://docs.mellowtel.com/llms.txt
Use this file to discover all available pages before exploring further.
Эта функция требует Mellowtel версии 1.6.2 или выше. Это является несовместимым изменением по сравнению с предыдущими версиями.
Mellowtel предоставляет дополнительную функцию, которая позволяет обрабатывать больше запросов и, следовательно, зарабатывать больше. Эта функция называется “Meucci”.
Установка
Сначала установите необходимый пакет npm, используя предпочитаемый менеджер пакетов:
Используя npm
npm install @mellowtel/module-meucci
Используя yarn
yarn add @mellowtel/module-meucci
Используя pnpm
pnpm add @mellowtel/module-meucci
Ниже приведены инструкции по включению функции Meucci в вашем плагине для браузера, с вариантами как для стандартной, так и для реализации с использованием фреймворка Plasmo.
Стандартная реализация
1. Создайте JavaScript файл с именем meucci.js
В каталоге src, или где у вас находятся js файлы, создайте файл с именем meucci.js и добавьте следующий код. Убедитесь, что этот файл включен в вашу финальную сборку (/dist).
Если вы следовали начальному настройке webpack, вы можете просто добавить этот файл в объект entry в вашей конфигурации webpack.
import ModuleMeucci from "@mellowtel/module-meucci";
let moduleMeucci;
(async () => {
moduleMeucci = new ModuleMeucci();
await moduleMeucci.init();
})();
2. Обновите вашу конфигурацию webpack
Убедитесь, что ваша финальная сборка включает файл meucci.js.
Если вы следовали начальному настройке webpack, вы можете просто добавить этот файл в объект entry в вашей конфигурации webpack.
module.exports = {
// ...
entry: {
// background: path.join(__dirname, 'src', 'background.js'),
// popup: path.join(__dirname, 'src', 'popup.js'),
// content_script: path.join(__dirname, 'src', 'content_script.js'), ...
// pascoli: path.join(__dirname, 'src', 'pascoli.js'),
meucci: path.join(__dirname, 'src', 'meucci.js'),
// ...
},
// ...
}
3. Обновите manifest.json
Добавьте файл meucci.js в ваш manifest.json как web_accessible_resources:
{
"web_accessible_resources": [
{
"resources": [
"meucci.js"
],
"matches": [ "<all_urls>" ]
}
]
}
Реализация с использованием фреймворка Plasmo
Если вы используете фреймворк Plasmo, следуйте этим альтернативным шагам:
1. Создайте TypeScript файл с именем meucci.ts
В каталоге src, или где у вас находятся ts файлы, создайте файл с именем meucci.ts и добавьте следующий код:
import ModuleMeucci from "@mellowtel/module-meucci";
let moduleMeucci;
(async () => {
moduleMeucci = new ModuleMeucci();
await moduleMeucci.init();
})();
2. Создайте скрипт сборки
Создайте файл build-meucci.js в корне вашего проекта со следующим содержимым:
const esbuild = require('esbuild')
const fs = require('fs')
const path = require('path')
// Функция для ожидания существования директории
const waitForDirectory = async (dir, timeout = 10000) => {
const start = Date.now()
while (!fs.existsSync(dir)) {
if (Date.now() - start > timeout) {
throw new Error(`Timeout waiting for directory: ${dir}`)
}
await new Promise(resolve => setTimeout(resolve, 100))
}
}
// Создайте функцию сборки
async function buildMeucci() {
// Соберите пакет
await esbuild.build({
entryPoints: ['src/meucci.ts'], // TODO: ЗАМЕНИТЕ на путь к вашему файлу meucci.ts
bundle: true,
outfile: 'meucci.bundled.js',
platform: 'browser',
format: 'iife',
minify: true,
target: ['es2020'],
define: {
'process.env.NODE_ENV': '"production"'
}
})
// Прочитайте собранный файл
const bundledContent = fs.readFileSync('meucci.bundled.js', 'utf8')
// Скопируйте в dev и prod директории
const directories = [
'build/chrome-mv3-dev',
'build/chrome-mv3-prod',
'build/firefox-mv2-dev',
'build/firefox-mv2-prod',
'build/safari-mv2-dev',
'build/safari-mv2-prod',
'build/opera-mv3-dev',
'build/opera-mv3-prod'
] // TODO: ЗАМЕНИТЕ на пути к вашим dev и prod директориям
// Обработайте все директории одновременно
await Promise.all(directories.map(async (dir) => {
try {
console.log(`Ожидание директории: ${dir}`)
await waitForDirectory(dir)
// Запишите собранный файл
fs.writeFileSync(path.join(dir, 'meucci.js'), bundledContent)
console.log(`Добавлен meucci.js в ${dir}`)
} catch (err) {
console.log(`Пропуск ${dir} - ${err.message}`)
}
}))
// Удалите временный файл
fs.unlinkSync('meucci.bundled.js')
}
buildMeucci().catch(err => {
console.error(err)
process.exit(1)
})
3. Обновите package.json
Добавьте следующее в ваш файл package.json:
{
"scripts": {
"build:meucci": "node build-meucci.js"
},
"web_accessible_resources": [
{
"resources": [
"meucci.js"
],
"matches": [ "<all_urls>" ]
}
]
}
Вы можете либо:
- Запустить скрипт сборки вручную после вашей основной сборки:
npm run build:meucci
- Или добавить его к вашему существующему скрипту сборки с помощью
&: "build": "your-existing-build-command & npm run build:meucci"
Это обеспечит правильную сборку и копирование файла Meucci во все директории сборки в правильной структуре Plasmo.
Обновите initContentScript
Для обеих реализаций измените ваш метод initContentScript в контент-скрипте, чтобы включить правильный путь к файлу Meucci:
// Для стандартной реализации
await initContentScript({
meucciFilePath: "meucci.js"
});
Для фреймворка Plasmo, вы можете использовать следующее:
// Для фреймворка Plasmo
await initContentScript({
meucciFilePath: "meucci.js"
});
Если у вас также включен Pascoli, вы можете использовать следующее:
await initContentScript({
pascoliFilePath: "pascoli.html", // или "tabs/pascoli.html", если используете фреймворк Plasmo
meucciFilePath: "meucci.js"
});