Skapa ett npm projekt
När man jobbar i projekt som har att göra med programmeringsspråket javascript så kan man använda node och npm som ett sätt att hantera projektet och installera verktyg och extra kodmoduler och hjälpverktyg vid behov. För att det skall fungera så behöver man initiera repot som ett npm projekt via kommandot npm init
. Då skapas en fil package.json
som innehåller inställningar för projektet och eventuella beroenden (dependencies). Om man installerar någon extra modul via npm install
så kommer det också att skapas en fil package-lock.json
som innehåller exakta versioner på de moduler som installerats och tillåter att man installerar exakt samma versioner vid nästa tillfälle. Dessa filer kan vara en del av ditt repo. När man installerar moduler så sparas de i katalogen node_modules
, men den katalogen skall inte vara en del av repot och därför har vi placerat den i .gitignore
. Den katalogen kan alltid återskapas utifrån filerna package*.json
via kommandot npm install
eller den kortare varianten av samma kommando npm i
.
Initiera som npm projekt
Vi börjar med kommandot npm init
för att initiera projektet.
# Just init the project, without answering any questionsnpm init -y
Det kan se ut så här om du gör detta i vscode och terminalen.

Lägg in ditt eget namn som author
Om du tittar i filen package.json
så ser du ett fält som heter "author"
. Gå in i den filen och redigera genom att lägga till ditt eget namn. Du kan se nedan vilkan rad det gäller.
{ "name": "webtec-abcd25", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/bth-webtec/webtec-abcd25.git" }, "keywords": [], "author": "", "author": "Mikael Roos", "license": "ISC", "bugs": { "url": "https://github.com/bth-webtec/webtec-abcd25/issues" }, "homepage": "https://github.com/bth-webtec/webtec-abcd25#readme"}
Spara ändringarna när du är klar.
Använd “type”: “module” för moduler
När man jobbar med javascript kan man dela upp koden i moduler och det finns ett par olika modulsystem. Vi jobbar normalt med det modulsystem som använder import/export för ECMAScript moduler vilket också kallas ESM. Vi vill därför specificera att vårt projekt använder sig av ESM moduler och då behöver vi konfigurera det i filen pacakge.json
genom att lägga till en rad i den filen.
{ "name": "webtec-abcd25", "version": "1.0.0", "description": "", "main": "index.js", "type": "module", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/bth-webtec/webtec-abcd25.git" }, "keywords": [], "author": "Mikael Roos", "license": "ISC", "bugs": { "url": "https://github.com/bth-webtec/webtec-abcd25/issues" }, "homepage": "https://github.com/bth-webtec/webtec-abcd25#readme"}
Glöm inte att spara filen.
Lägg till filen i ditt repo och pusha
Avsluta med att lägga till filen package.json
som en del av ditt repo och pusha den. Dubbelkolla att den finns på GitHub innan du är helt klar.