Zoeken op website

javascript - Vue-componentenbibliotheek zonder de ondersteunende pakketten te verpakken of scss-bestanden te compileren


Ik ben belast met het uitzoeken hoe ik een componentenbibliotheek kan publiceren waaraan mijn team werkt. Deze componenten zullen worden gebruikt door verschillende interne applicaties binnen het bedrijf. Ik heb de volgende beperkingen:

  • De bibliotheek zal worden gebruikt als een npm-pakket vanuit een intern lokaal repository. (dit deel heb ik uitgezocht)
  • Componenten moeten worden gecompileerd naar JavaScript met TypeScript-interface (*.d.ts) verwijzingen binnen het pakket.
  • Er mogen geen pakketten van derden (inclusief Vue) worden meegebundeld. Het is eerder wenselijk dat de afhankelijke npm-pakketten aan een project worden toegevoegd wanneer de component wordt toegevoegd en na npm i.
  • Het gecompileerde CSS-bundel moet bij het pakket worden opgenomen, maar moet afzonderlijk binnen een project worden aangeroepen wanneer het nodig is.
  • De raw scss-bestanden die de componentstijlen vormen, moeten bij het pakket worden geleverd zodat ze tijdens een build in de bestaande scss van een project kunnen worden gebundeld.

Ik heb gekeken naar vue-cli-service build --target lib om dit te bereiken, maar het lijkt erop dat het alles bundelt en inpakt.

Is wat ik vraag überhaupt mogelijk? Is het een anti-patroon? Zijn er alternatieven? Ik weet niet waar te beginnen.

Antwoord #1

Je bent de juiste richting ingeslagen met vue-cli-service build --target lib, dit is precies wat je nodig hebt. Het bundelt je entry .vue bestand als een component en deze bundel wordt vervolgens je entry point voor package.json. Het bevat de Vue-bibliotheek niet (dit staat vermeld in de documentatie) en ik denk dat het standaard is geconfigureerd om de CSS in een afzonderlijk bestand te extraheren in de dist map. Ik hoop dat dit helpt.