Lietuvių

Išnagrinėkite Vite įskiepių architektūrą ir išmokite kurti individualius įskiepius, kad pagerintumėte savo kūrimo procesą. Įsisavinkite esmines koncepcijas su praktiniais pavyzdžiais.

Vite įskiepių architektūros demistifikavimas: globalus vadovas, kaip kurti individualius įskiepius

Vite, žaibiškai greitas kūrimo įrankis, sukėlė revoliuciją frontend kūrime. Jo greitis ir paprastumas daugiausia priklauso nuo galingos įskiepių architektūros. Ši architektūra leidžia kūrėjams išplėsti Vite funkcionalumą ir pritaikyti jį prie savo specifinių projekto poreikių. Šis vadovas pateikia išsamią Vite įskiepių sistemos apžvalgą, suteikiančią jums galimybę kurti savo individualius įskiepius ir optimizuoti kūrimo eigą.

Vite pagrindinių principų supratimas

Prieš pradedant kurti įskiepius, būtina suprasti Vite pagrindinius principus:

Įskiepių vaidmuo Vite ekosistemoje

Vite įskiepių architektūra sukurta taip, kad būtų itin išplečiama. Įskiepiai gali:

Įskiepiai yra raktas į Vite pritaikymą įvairiems projekto reikalavimams, nuo paprastų modifikacijų iki sudėtingų integracijų.

Vite įskiepių architektūra: išsami apžvalga

Vite įskiepis iš esmės yra JavaScript objektas su specifinėmis savybėmis, kurios apibrėžia jo elgseną. Panagrinėkime pagrindinius elementus:

Įskiepio konfigūracija

`vite.config.js` (arba `vite.config.ts`) faile konfigūruojate savo Vite projektą, įskaitant nurodymą, kuriuos įskiepius naudoti. `plugins` parinktis priima įskiepių objektų masyvą arba funkcijas, kurios grąžina įskiepių objektus.

// vite.config.js
import myPlugin from './my-plugin';

export default {
  plugins: [
    myPlugin(), // Invoke the plugin function to create a plugin instance
  ],
};

Įskiepio objekto savybės

Vite įskiepio objektas gali turėti keletą savybių, kurios apibrėžia jo elgseną skirtinguose kūrimo proceso etapuose. Štai dažniausiai pasitaikančių savybių apžvalga:

Įskiepių „kabliai“ (hooks) ir vykdymo tvarka

Vite įskiepiai veikia per eilę „kablių“ (hooks), kurie suaktyvinami skirtinguose kūrimo proceso etapuose. Suprasti, kokia tvarka šie „kabliai“ vykdomi, yra labai svarbu norint rašyti efektyvius įskiepius.

  1. config: Modifikuoti Vite konfigūraciją.
  2. configResolved: Pasiekti išspręstą konfigūraciją.
  3. configureServer: Modifikuoti kūrimo serverį (tik kūrimo metu).
  4. transformIndexHtml: Transformuoti `index.html` failą.
  5. buildStart: Kūrimo proceso pradžia.
  6. resolveId: Išspręsti modulių ID.
  7. load: Įkelti modulio turinį.
  8. transform: Transformuoti modulio kodą.
  9. handleHotUpdate: Apdoroti karštąjį modulių pakeitimą (HMR).
  10. writeBundle: Modifikuoti išvesties paketą prieš įrašant į diską.
  11. closeBundle: Iškviečiama po to, kai išvesties paketas buvo įrašytas į diską.
  12. buildEnd: Kūrimo proceso pabaiga.

Pirmojo individualaus Vite įskiepio kūrimas

Sukurkime paprastą Vite įskiepį, kuris prideda antraštę (banner) į kiekvieno JavaScript failo viršų produkcijos versijoje. Šioje antraštėje bus projekto pavadinimas ir versija.

Įskiepio įgyvendinimas

// banner-plugin.js
import { readFileSync } from 'node:fs';
import { resolve } from 'node:path';

export default function bannerPlugin() {
  return {
    name: 'banner-plugin',
    apply: 'build',
    transform(code, id) {
      if (!id.endsWith('.js')) {
        return code;
      }

      const packageJsonPath = resolve(process.cwd(), 'package.json');
      const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
      const banner = `/**\n * Project: ${packageJson.name}\n * Version: ${packageJson.version}\n */\n`;

      return banner + code;
    },
  };
}

Paaiškinimas:

Įskiepio integravimas

Importuokite įskiepį į savo `vite.config.js` failą ir pridėkite jį į `plugins` masyvą:

// vite.config.js
import bannerPlugin from './banner-plugin';

export default {
  plugins: [
    bannerPlugin(),
  ],
};

Kūrimo (build) paleidimas

Dabar paleiskite `npm run build` (arba savo projekto kūrimo komandą). Baigus kūrimą, patikrinkite sugeneruotus JavaScript failus `dist` kataloge. Kiekvieno failo viršuje pamatysite antraštę.

Pažangios įskiepių technikos

Be paprastų kodo transformacijų, Vite įskiepiai gali naudoti pažangesnes technikas, siekiant pagerinti savo galimybes.

Virtualūs moduliai

Virtualūs moduliai leidžia įskiepiams kurti modulius, kurie neegzistuoja kaip realūs failai diske. Tai naudinga generuojant dinaminį turinį arba teikiant konfigūracijos duomenis programai.

// virtual-module-plugin.js
export default function virtualModulePlugin(options) {
  const virtualModuleId = 'virtual:my-module';
  const resolvedVirtualModuleId = '\0' + virtualModuleId; // Prefix with \0 to prevent Rollup from processing

  return {
    name: 'virtual-module-plugin',
    resolveId(id) {
      if (id === virtualModuleId) {
        return resolvedVirtualModuleId;
      }
    },
    load(id) {
      if (id === resolvedVirtualModuleId) {
        return `export default ${JSON.stringify(options)};`;
      }
    },
  };
}

Šiame pavyzdyje:

Virtualaus modulio naudojimas

// vite.config.js
import virtualModulePlugin from './virtual-module-plugin';

export default {
  plugins: [
    virtualModulePlugin({ message: 'Hello from virtual module!' }),
  ],
};
// main.js
import message from 'virtual:my-module';

console.log(message.message); // Output: Hello from virtual module!

Index HTML transformavimas

`transformIndexHtml` „kablys“ leidžia modifikuoti `index.html` failą, pavyzdžiui, įterpiant scenarijus, stilius ar meta žymes. Tai naudinga pridedant analitikos sekimą, konfigūruojant socialinių tinklų metaduomenis ar pritaikant HTML struktūrą.

// inject-script-plugin.js
export default function injectScriptPlugin() {
  return {
    name: 'inject-script-plugin',
    transformIndexHtml(html) {
      return html.replace(
        '',
        ``
      );
    },
  };
}

Šis įskiepis įterpia `console.log` sakinį į `index.html` failą prieš pat uždarančią `` žymę.

Darbas su kūrimo serveriu

`configureServer` „kablys“ suteikia prieigą prie kūrimo serverio egzemplioriaus, leidžiantį pridėti individualią tarpinę programinę įrangą (middleware), keisti serverio elgseną ar tvarkyti API užklausas.

// mock-api-plugin.js
export default function mockApiPlugin() {
  return {
    name: 'mock-api-plugin',
    configureServer(server) {
      server.middlewares.use('/api/data', (req, res) => {
        res.writeHead(200, { 'Content-Type': 'application/json' });
        res.end(JSON.stringify({ message: 'Hello from mock API!' }));
      });
    },
  };
}

Šis įskiepis prideda tarpinę programinę įrangą (middleware), kuri perima užklausas į `/api/data` ir grąžina JSON atsakymą su imitacine žinute. Tai naudinga imituojant API galinius taškus kūrimo metu, kol backend dar nėra pilnai įgyvendintas. Atminkite, kad šis įskiepis veikia tik kūrimo metu.

Realaus pasaulio įskiepių pavyzdžiai ir naudojimo atvejai

Štai keletas praktinių pavyzdžių, kaip Vite įskiepiai gali būti naudojami sprendžiant įprastas kūrimo problemas:

Gerosios praktikos rašant Vite įskiepius

Laikykitės šių geriausių praktikų, kad sukurtumėte patikimus ir lengvai prižiūrimus Vite įskiepius:

Vite įskiepių derinimas

Vite įskiepių derinimas gali būti sudėtingas, tačiau yra keletas technikų, kurios gali padėti:

Išvada: kūrimo proceso stiprinimas su Vite įskiepiais

Vite įskiepių architektūra yra galingas įrankis, leidžiantis pritaikyti ir išplėsti kūrimo procesą pagal jūsų specifinius poreikius. Suprasdami pagrindines koncepcijas ir laikydamiesi geriausių praktikų, galite sukurti individualius įskiepius, kurie pagerins jūsų kūrimo eigą, patobulins jūsų programos funkcijas ir optimizuos jos našumą.

Šis vadovas pateikė išsamią Vite įskiepių sistemos apžvalgą, nuo pagrindinių koncepcijų iki pažangių technikų. Skatiname jus eksperimentuoti kuriant savo įskiepius ir tyrinėti didžiules Vite ekosistemos galimybes. Pasinaudodami įskiepių galia, galite atskleisti visą Vite potencialą ir kurti nuostabias interneto programas.

Vite įskiepių architektūros demistifikavimas: globalus vadovas, kaip kurti individualius įskiepius | MLOG