Som utvikler har du sannsynligvis kjørt over mappen `node_modules` i prosjektene dine. Dette er en avgjørende del av JavaScript- og TypeScript-verdenen, spesielt i prosjekter som bruker Node.js. Disse "node_modulene" er som DNA for prosjektet ditt, inkludert alle bibliotekene eller avhengighetene koden din trenger for å kjøre riktig. Problemet er at denne mappen raskt kan vokse i størrelse, noe som gjør prosjektet ditt tungt, spesielt når det gjelder versjonskontrollsystemer. I tillegg kan det være en myriade av versjonskonflikter hvis de ikke håndteres riktig.
En effektiv måte å håndtere dette problemet på er å ignorere 'node_modulene' i prosjektet ditt. De fleste versjonskontrollsystemer tilbyr mekanismer for å ekskludere spesifiserte filer eller kataloger. I Git, for eksempel, kan dette gjøres ved å bruke en `.gitignore`-fil. Denne filen spesifiserer både fil- og katalogmønstre som Git skal ignorere, og holder prosjektet ditt rent og betydelig mindre.
La oss nå fortsette med en trinnvis gjennomgang av løsningen for å forstå den på et dypere nivå.
1. First, you should make sure you are in the root directory of your project where the `node_modules` resides. You may use the following command: ```sh cd /path/to/your/project ``` 2. Next, all you've got to do is create a file named `.gitignore` in your project root, via a simple touch command: ```sh touch .gitignore ``` 3. Then, open the newly created `.gitignore` file in your preferred text editor: ```sh nano .gitignore ``` 4. Inside this file, simply add: `node_modules/`. This tells Git to ignore the `node_modules` directory.
Forstå .gitignore
`.gitignore`-filen er et kraftig verktøy for utviklere som bruker Git som sitt versjonskontrollsystem. Det er enkelt, men likevel sofistikert. Mønstrene i denne filen matches mot filer og kataloger i depotet ditt, og de som samsvarer blir ignorert av Git. Dette betyr at Git ikke vil spore endringene deres, og vil ikke inkludere dem i commits, pushing eller pulling handlinger.
- Hver linje i `.gitignore` spesifiserer et mønster. For eksempel vil `*.tmp` ignorere alle .tmp-filer.
- Linjer som begynner med `#` er kommentarer og har ingen effekt i det hele tatt.
- Katalognavn slutter med et `/`, som `node_modules/`.
- Et mønster som starter med `!` negerer mønsteret, noe som gjør at Git ikke ignorerer de samsvarende filene.
npm og package.json
Når det gjelder å administrere JavaScript-avhengigheter, er det viktig å ikke overse viktigheten av `package.json`. Denne JSON-filen inneholder ulike metadata om prosjektet ditt, inkludert listen over dets avhengigheter og deres respektive versjoner.
- `dependencies`-nøkkelen i `package.json` spesifiserer pakker som kreves for at applikasjonen din skal kjøre.
- `devDependencies`-nøkkelen spesifiserer pakker som kun trengs for å utvikle applikasjonen din, som å teste biblioteker.
Ved ganske enkelt å kjøre `npm install`, henter npm alle pakkene nevnt i `package.json` og installerer dem inne i `node_modules`-katalogen. Så selv om vi ignorerer `node_modules`-katalogen i vårt versjonskontrollsystem, kan vi alltid hente prosjektets avhengigheter fra filen `package.json`.