typescript - Hvordan inkludere et lokalt bibliotek i Angular?
Mens jeg laget en Angular-applikasjon ønsket jeg å lage et bibliotek hvor jeg kan legge komponenter som også kan være nyttige i andre prosjekter. For å lage biblioteket har jeg laget et annet Angular-arbeidsområde hvor jeg har generert bibliotekprosjektet og brukt applikasjonsprosjektet som ble generert automatisk innenfor arbeidsområdet for å vise individuelle komponenter.
ng new my-components-library
cd my-components-library
ng generate library components-library
Nå har jeg et bibliotek med fungerende komponenter som består enhetstestene og fungerer riktig i det vedlagte applikasjonsprosjektet, men jeg trenger dem i prosjektets arbeidsområde. Jeg prøvde å inkludere biblioteket på denne måten.
Inne i prosjektarbeidsområdet mitt
npm install ../my-components-library/projects/components-library
kommandoen kjører riktig og jeg får en referanse til biblioteket i vertprosjektets package.json, men når jeg må inkludere moduler fra det eksterne biblioteket i et prosjekts modul ved å bruke import {myModule} from 'components-library', får jeg en feil fordi Angular ikke kan finne modulen.
Svar #1
Du kan enten bruke npm link, som oppretter en symbolsk lenke i node_modules-katalogen til vertsapplikasjonene dine.
- Kjør
npm linki det lokale biblioteket - Kjør
npm link @local-library-namei vertsapplikasjonen - Men sørg for at du gjør følgende endringer i vertsappene dine sin
angular.json-fil. Hvis du bruker Angular 11 eller lavere, legg da til"preserveSymlinks": true, ellerssourceMapmedscripts,styles,vendorsom true
"build": {
"options": {
"preserveSymlinks": true, // angular 11 or less
}
},
{
"projects": {
"your-app": {
"architect": {
"build": {
"options": {
"sourceMap": { // angular 12 or more
"scripts": true,
"styles": true,
"vendor": true
},
Du kan pakke biblioteket i en tar ved å bruke npm pack.
- Kjør
npm packi biblioteket ditt - Kjør
npm i your-library-path.tgzi vertsapplikasjonen din - Eller du kan oppdatere package.json med en ny avhengighet for vertsapplikasjonen og kjøre
npm i
"your-library-name": "file:your-library-path.tgz",
