FJS26 · V48 · TISDAG

Verktygs-
kedjan

Node.js, npm, Vite, ESLint och Prettier. Samma uppsättning som ni använder resten av kursen.

Chas Academy · Tisdag 24 november 2026


Idag

01Varför verktyg?02Node.js03npm och package.json04Vite05ESLint och Prettier06Inför torsdagen
VERKTYGSKEDJAN2 / 25
”

Hittills har ni kört koden med Live Server. Det räcker långt, men inte hela vägen: inga paket, inget bygge och ingen som säger till när koden är fel.

01

Varför
verktyg?

VARFÖR VERKTYG?


Fyra problem, fyra verktyg

Köra JavaScript utanför webbläsaren

Node.js. Allt annat i listan är program skrivna i JavaScript, som körs i Node.

Använda andras kod

npm. Installerar paket, håller reda på versioner och kör skript.

Få det att fungera i webbläsaren

Vite. Utvecklingsserver som laddar om direkt, och bygger en färdig version till dist/.

Hålla koden ren

ESLint hittar fel. Prettier formaterar likadant hos alla.

VERKTYGSKEDJAN5 / 25
02

Node.js

Node.js

En runtime som kör JavaScript utanför webbläsaren. Den bygger på V8, samma JavaScript-motor som i Chrome.

  • Samma språk, men andra API:er: inget document eller window, men process och filsystemet.
  • fetch, console och setTimeout finns i båda.
  • Används för servrar, och för alla verktyg ni använder i dag.
VERKTYGSKEDJAN7 / 25

NODE.JS


Samma kod, olika miljö

Webbläsaren

document.title;   // fungerar
window.innerWidth; // fungerar
process.version;  // ReferenceError

Node

document.title;   // ReferenceError
process.version;  // 'v22.23.3'
await fetch(url); // fungerar
VERKTYGSKEDJAN8 / 25
03

npm och
package.json

NPM


npm gör tre saker

Installerar paket

npm install date-fns
npm install -D eslint

Håller reda på dem

package.json säger vilka paket och vilka versioner som är okej. package-lock.json säger exakt vilka som installerades.

Kör skript

npm run dev
npm run build
npm run lint
VERKTYGSKEDJAN10 / 25

NPM


package.json

Filen

{
  "name": "vaderappen",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint ."
  },
  "dependencies": {
    "date-fns": "^4.4.0"
  },
  "devDependencies": {
    "vite": "^8.3.5"
  }
}

Det viktiga

scripts: kommandon du kör med npm run. dependencies: behövs när appen körs. devDependencies: behövs bara när du utvecklar, som Vite och ESLint. ^4.4.0: 4.4.0 eller nyare, men inte 5.

VERKTYGSKEDJAN11 / 25

NPM


Vad ska med i git?

Med

package.json och package-lock.json. Med dem kan vem som helst köra npm install och få exakt samma paket.

Inte med

node_modules och dist. De går att återskapa, och node_modules kan vara hundratals megabyte.

VERKTYGSKEDJAN12 / 25

NPM


Ett paket i webbläsaren, utan verktyg

Code-along del 2: väderappen från v47, med Live Server.

Koden

import { format } from 'date-fns';

Felet

TypeError: Failed to resolve module
specifier "date-fns". Relative
references must start with either
"/", "./", or "../".
VERKTYGSKEDJAN13 / 25
04

Vite

Vite

Ett build tool: en utvecklingsserver medan du kodar, och en bundler som bygger en färdig version när du är klar.

  • npm run dev: startar en server som laddar om sidan direkt när du sparar.
  • Löser import av paket från node_modules.
  • npm run build: slår ihop, minifierar och optimerar till dist/, som är det du publicerar.
VERKTYGSKEDJAN15 / 25

VITE


Ett nytt projekt

Skapa

npm create vite@latest 3-vite
# Vanilla → JavaScript

cd 3-vite
npm install
npm run dev

Det du får

index.html i roten, koden i src/, statiska filer i public/, och en package.json med skripten dev, build och preview.

VERKTYGSKEDJAN16 / 25

VITE


date-fns, nu på riktigt

render.js

import { format } from 'date-fns';
import { sv } from 'date-fns/locale';

format(new Date('2026-11-19'),
  'EEEE d MMMM', { locale: sv });
// 'torsdag 19 november'

Bygget

npm run build

dist/index.html
dist/assets/index-BYnw8nEF.css
dist/assets/index-fuh0IRuM.js
VERKTYGSKEDJAN17 / 25
05

ESLint och
Prettier

KODKVALITET


Linter och formatter

ESLint: hittar fel

Variabler som inte används, variabler som inte finns, kod som aldrig körs. Saker som kan vara buggar.

'x' is assigned a value
  but never used  no-unused-vars
'y' is not defined  no-undef

Prettier: formaterar

Indrag, citattecken, radlängd och semikolon. Bara utseendet, aldrig vad koden gör.

const x = 1
// blir
const x = 1;
VERKTYGSKEDJAN19 / 25

KODKVALITET


Installera och konfigurera

Installera

npm install -D eslint @eslint/js globals
npm install -D prettier
npm install -D eslint-config-prettier

eslint.config.js

import js from '@eslint/js';
import globals from 'globals';
import prettier from
  'eslint-config-prettier';

export default [
  { ignores: ['dist'] },
  js.configs.recommended,
  { languageOptions:
    { globals: globals.browser } },
  prettier,
];
VERKTYGSKEDJAN20 / 25

KODKVALITET


Skript som gör jobbet

package.json

"scripts": {
  "dev": "vite",
  "build": "vite build",
  "lint": "eslint .",
  "format": "prettier --write .",
  "format:check": "prettier --check .",
  "check":
    "npm run lint && npm run format:check"
}

I VS Code

Installera tilläggen för ESLint och Prettier, och slå på Format on Save. Då ser du felen medan du skriver, och koden formateras när du sparar.

VERKTYGSKEDJAN21 / 25

Övning

Gör om det med en egen app

Ta en egen app, till exempel quiz-appen från u03, och flytta in den i ett nytt Vite-projekt. Lägg till ESLint och Prettier och skripten lint, format och check. Kör npm run check och rätta det ESLint hittar.

Tid

20 min

Mål

Du kan sätta upp ett Vite-projekt med lint och formattering från början, utan att titta i code-alongen.

VERKTYGSKEDJAN22 / 25
06

Inför
torsdagen

KURSMÅL 2


Det här ska du kunna förklara

  • Vad Node.js är, och vad skillnaden är mot att köra JavaScript i webbläsaren.
  • Vad npm gör, och vad package.json, package-lock.json och node_modules är till för.
  • Skillnaden mellan dependencies och devDependencies.
  • Vad Vite gör, i utveckling och när du bygger.
  • Skillnaden mellan en linter och en formatter.
VERKTYGSKEDJAN24 / 25

EFTER PASSET


Mer att läsa

  • Vite: vite.dev, Getting Started.
  • npm: docs.npmjs.com, om package.json och semver.
  • ESLint: eslint.org, Getting Started.
  • Prettier: prettier.io, Why Prettier?
VERKTYGSKEDJAN25 / 25