Compilació plugin
Configuració vite
La configuració de l'arxiu vite.config.ts
defineix com a externes les dependències "lit" i "@uxland/primary-shell", indicant que no s'han d'incloure en el paquet final. I s'inclou la definició de inlineDynamicImports: true
, que força a incloure totes les importacions dinàmiques en un únic arxiu.
Això és necessari per evitar la duplicitat de dependències grans o comunes en el paquet i reduïr el tamany de l'arxiu final, assegurant que els plugins comparteixin aquestes dependències en comptes d'incloure-les per duplicat. D'aquesta manera es té un sol arxiu de sortida:
import { defineConfig, loadEnv } from "vite";
import pkg from "./package.json";
export default ({ mode }) => {
process.env = { ...process.env, ...loadEnv(mode, process.cwd()) };
return defineConfig({
define: {
"process.env": {},
},
build: {
lib: {
entry: "./src/plugin.ts",
fileName: "index",
name: pkg.name,
},
rollupOptions: {
external: ["lit", "@uxland/primary-shell"],
output: {
globals: {
lit: "lit",
"@uxland/primary-shell": "@uxland/primary-shell",
},
inlineDynamicImports: true,
manualChunks: undefined,
},
},
minify: true,
sourcemap: true,
},
});
};
A aquest últim concepte d'unitat d'arxiu, també s'hi suma la definició de manualChunks: undefined
, que en establir-se com a undefined, el que es fa és desactivar la funcionalitat de dividir els mòduls en diferents fragments.
Build per producció
Una vegada es té el plugin finalitzat, s'ha de preparar per a poder-lo desplegar a la Plugin Store. Per generar el paquet final del plugin, s'han d'executar aquestes dues comandes següents:
npm install
npm run vite build
Seguidament es crea automàticament la carpeta dist. Dins aquesta carpeta, l'arxiu index.js
és el que s'haurà de pujar a la Plugin Store.