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.
Esta función requiere Mellowtel versión 1.6.2 o superior. Este es un cambio importante en comparación con versiones anteriores.
Mellowtel ofrece una función opcional que te permite manejar más solicitudes y, por lo tanto, ganar más. Esta función se llama “Meucci”.
Instalación
Primero, instala el paquete npm requerido usando tu gestor de paquetes preferido:
Usando npm
npm install @mellowtel/module-meucci
Usando yarn
yarn add @mellowtel/module-meucci
Usando pnpm
pnpm add @mellowtel/module-meucci
A continuación se presentan las instrucciones para habilitar la función Meucci en tu complemento del navegador, con opciones para implementaciones estándar y del marco Plasmo.
Implementación Estándar
1. Crea un archivo JavaScript llamado meucci.js
En el directorio src, o donde tengas archivos js, crea un archivo llamado meucci.js y añade el siguiente código. Asegúrate de que este archivo se incluya en tu directorio de compilación final (/dist).
Si seguiste la configuración inicial de configuración de webpack, simplemente puedes añadir este archivo al objeto entry en tu configuración de webpack.
import ModuleMeucci from "@mellowtel/module-meucci";
let moduleMeucci;
(async () => {
moduleMeucci = new ModuleMeucci();
await moduleMeucci.init();
})();
2. Actualiza tu configuración de webpack
Asegúrate de que tu directorio de compilación final incluya el archivo meucci.js.
Si seguiste la configuración inicial de configuración de webpack, simplemente puedes añadir este archivo al objeto entry en tu configuración de 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. Actualiza manifest.json
Añade el archivo meucci.js a tu manifest.json como web_accessible_resources:
{
"web_accessible_resources": [
{
"resources": [
"meucci.js"
],
"matches": [ "<all_urls>" ]
}
]
}
Implementación del Marco Plasmo
Si estás usando el marco Plasmo, sigue estos pasos alternativos:
1. Crea un archivo TypeScript llamado meucci.ts
En el directorio src, o donde tengas archivos ts, crea un archivo llamado meucci.ts y añade el siguiente código:
import ModuleMeucci from "@mellowtel/module-meucci";
let moduleMeucci;
(async () => {
moduleMeucci = new ModuleMeucci();
await moduleMeucci.init();
})();
2. Crea un Script de Compilación
Crea un archivo build-meucci.js en la raíz de tu proyecto con el siguiente contenido:
const esbuild = require('esbuild')
const fs = require('fs')
const path = require('path')
// Función para esperar que un directorio exista
const waitForDirectory = async (dir, timeout = 10000) => {
const start = Date.now()
while (!fs.existsSync(dir)) {
if (Date.now() - start > timeout) {
throw new Error(`Timeout esperando el directorio: ${dir}`)
}
await new Promise(resolve => setTimeout(resolve, 100))
}
}
// Crea la función de compilación
async function buildMeucci() {
// Compila el paquete
await esbuild.build({
entryPoints: ['src/meucci.ts'], // TODO: REEMPLAZAR con la ruta a tu archivo meucci.ts
bundle: true,
outfile: 'meucci.bundled.js',
platform: 'browser',
format: 'iife',
minify: true,
target: ['es2020'],
define: {
'process.env.NODE_ENV': '"production"'
}
})
// Lee el archivo empaquetado
const bundledContent = fs.readFileSync('meucci.bundled.js', 'utf8')
// Copia a los directorios de desarrollo y producción
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: REEMPLAZAR con las rutas a tus directorios de desarrollo y producción
// Procesa todos los directorios de manera concurrente
await Promise.all(directories.map(async (dir) => {
try {
console.log(`Esperando el directorio: ${dir}`)
await waitForDirectory(dir)
// Escribe el archivo empaquetado
fs.writeFileSync(path.join(dir, 'meucci.js'), bundledContent)
console.log(`Añadido meucci.js a ${dir}`)
} catch (err) {
console.log(`Omitiendo ${dir} - ${err.message}`)
}
}))
// Limpia el archivo temporal
fs.unlinkSync('meucci.bundled.js')
}
buildMeucci().catch(err => {
console.error(err)
process.exit(1)
})
3. Actualiza package.json
Añade lo siguiente a tu archivo package.json:
{
"scripts": {
"build:meucci": "node build-meucci.js"
},
"web_accessible_resources": [
{
"resources": [
"meucci.js"
],
"matches": [ "<all_urls>" ]
}
]
}
Puedes:
- Ejecutar el script de compilación manualmente después de tu compilación principal:
npm run build:meucci
- O añadirlo a tu script de compilación existente con
&: "build": "your-existing-build-command & npm run build:meucci"
Esto asegurará que el archivo Meucci esté correctamente empaquetado y copiado a todos los directorios de compilación en la estructura correcta de Plasmo.
Actualiza initContentScript
Para ambas implementaciones, modifica tu método initContentScript en el script de contenido para incluir la ruta correcta al archivo Meucci:
// Para implementación estándar
await initContentScript({
meucciFilePath: "meucci.js"
});
Para el marco Plasmo, puedes usar lo siguiente:
// Para el marco Plasmo
await initContentScript({
meucciFilePath: "meucci.js"
});
Si también tienes habilitado Pascoli, puedes usar lo siguiente:
await initContentScript({
pascoliFilePath: "pascoli.html", // o "tabs/pascoli.html" si usas el marco Plasmo
meucciFilePath: "meucci.js"
});