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.
Diese Funktion erfordert Mellowtel Version 1.6.2 oder höher. Dies ist eine inkompatible Änderung im Vergleich zu früheren Versionen.
Mellowtel bietet eine optionale Funktion, die es dir ermöglicht, mehr Anfragen zu bearbeiten und dadurch mehr zu verdienen. Diese Funktion heißt “Meucci”.
Installation
Zuerst installiere das erforderliche npm-Paket mit deinem bevorzugten Paketmanager:
Mit npm
npm install @mellowtel/module-meucci
Mit yarn
yarn add @mellowtel/module-meucci
Mit pnpm
pnpm add @mellowtel/module-meucci
Im Folgenden findest du Anweisungen zur Aktivierung der Meucci-Funktion in deinem Browser-Plugin, mit Optionen für sowohl Standard- als auch Plasmo-Framework-Implementierungen.
Standardimplementierung
1. Erstelle eine JavaScript-Datei namens meucci.js
Erstelle im src-Verzeichnis oder dort, wo du deine js-Dateien hast, eine Datei namens meucci.js und füge den folgenden Code hinzu. Stelle sicher, dass diese Datei in deinem endgültigen Build-Verzeichnis (/dist) enthalten ist.
Wenn du die anfängliche webpack-Konfiguration befolgt hast, kannst du diese Datei einfach dem entry-Objekt in deiner webpack-Konfiguration hinzufügen.
import ModuleMeucci from "@mellowtel/module-meucci";
let moduleMeucci;
(async () => {
moduleMeucci = new ModuleMeucci();
await moduleMeucci.init();
})();
2. Aktualisiere deine webpack-Konfiguration
Stelle sicher, dass dein endgültiges Build-Verzeichnis die meucci.js-Datei enthält.
Wenn du die anfängliche webpack-Konfiguration befolgt hast, kannst du diese Datei einfach dem entry-Objekt in deiner webpack-Konfiguration hinzufügen.
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. Aktualisiere manifest.json
Füge die meucci.js-Datei als web_accessible_resources zu deinem manifest.json hinzu:
{
"web_accessible_resources": [
{
"resources": [
"meucci.js"
],
"matches": [ "<all_urls>" ]
}
]
}
Plasmo-Framework-Implementierung
Wenn du das Plasmo-Framework verwendest, folge diesen alternativen Schritten:
1. Erstelle eine TypeScript-Datei namens meucci.ts
Erstelle im src-Verzeichnis oder dort, wo du deine ts-Dateien hast, eine Datei namens meucci.ts und füge den folgenden Code hinzu:
import ModuleMeucci from "@mellowtel/module-meucci";
let moduleMeucci;
(async () => {
moduleMeucci = new ModuleMeucci();
await moduleMeucci.init();
})();
2. Erstelle ein Build-Skript
Erstelle eine build-meucci.js-Datei im Projektstammverzeichnis mit folgendem Inhalt:
const esbuild = require('esbuild')
const fs = require('fs')
const path = require('path')
// Funktion, um auf das Vorhandensein eines Verzeichnisses zu warten
const waitForDirectory = async (dir, timeout = 10000) => {
const start = Date.now()
while (!fs.existsSync(dir)) {
if (Date.now() - start > timeout) {
throw new Error(`Timeout beim Warten auf Verzeichnis: ${dir}`)
}
await new Promise(resolve => setTimeout(resolve, 100))
}
}
// Erstelle die Build-Funktion
async function buildMeucci() {
// Erstelle das Bundle
await esbuild.build({
entryPoints: ['src/meucci.ts'], // TODO: ERSETZEN mit dem Pfad zu deiner meucci.ts-Datei
bundle: true,
outfile: 'meucci.bundled.js',
platform: 'browser',
format: 'iife',
minify: true,
target: ['es2020'],
define: {
'process.env.NODE_ENV': '"production"'
}
})
// Lese die gebündelte Datei
const bundledContent = fs.readFileSync('meucci.bundled.js', 'utf8')
// Kopiere in dev- und prod-Verzeichnisse
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: ERSETZEN mit den Pfaden zu deinen dev- und prod-Verzeichnissen
// Verarbeite alle Verzeichnisse gleichzeitig
await Promise.all(directories.map(async (dir) => {
try {
console.log(`Warte auf Verzeichnis: ${dir}`)
await waitForDirectory(dir)
// Schreibe die gebündelte Datei
fs.writeFileSync(path.join(dir, 'meucci.js'), bundledContent)
console.log(`meucci.js zu ${dir} hinzugefügt`)
} catch (err) {
console.log(`Überspringe ${dir} - ${err.message}`)
}
}))
// Bereinige die temporäre Datei
fs.unlinkSync('meucci.bundled.js')
}
buildMeucci().catch(err => {
console.error(err)
process.exit(1)
})
3. Aktualisiere package.json
Füge das Folgende zu deiner package.json-Datei hinzu:
{
"scripts": {
"build:meucci": "node build-meucci.js"
},
"web_accessible_resources": [
{
"resources": [
"meucci.js"
],
"matches": [ "<all_urls>" ]
}
]
}
Du kannst entweder:
- Das Build-Skript manuell nach deinem Haupt-Build ausführen:
npm run build:meucci
- Oder es zu deinem bestehenden Build-Skript mit
& hinzufügen: "build": "dein-bestehender-build-befehl & npm run build:meucci"
Dies stellt sicher, dass die Meucci-Datei korrekt gebündelt und in alle Build-Verzeichnisse in der richtigen Plasmo-Struktur kopiert wird.
Aktualisiere initContentScript
Für beide Implementierungen, modifiziere deine initContentScript-Methode im Content-Skript, um den korrekten Pfad zur Meucci-Datei einzuschließen:
// Für Standardimplementierung
await initContentScript({
meucciFilePath: "meucci.js"
});
Für das Plasmo-Framework kannst du Folgendes verwenden:
// Für Plasmo-Framework
await initContentScript({
meucciFilePath: "meucci.js"
});
Wenn du auch Pascoli aktiviert hast, kannst du Folgendes verwenden:
await initContentScript({
pascoliFilePath: "pascoli.html", // oder "tabs/pascoli.html" wenn du das Plasmo-Framework verwendest
meucciFilePath: "meucci.js"
});