NodeJS: Co zrobić, aby działały ścieżki absolutne w Vitest?

Opublikowano: 24.12.2024 - tagi: Vitest JavaScript TypeScript Ścieżka Testowanie NodeJS Konfiguracja

Konfiguracja

Załóżmy, że mamy taką strukturę katalogów:

tsconfig.json
vitest.config.js
src
	index.ts
	calculator
		add.ts
		sub.ts
		index.ts

Tak wygląda konfiguracja pliku tsconfig.json:

{
	"compilerOptions": {
		...
		"baseUrl": ".",
		"paths": {
			"@/*": ["./src/*"]
		},
		"include": ["src"]
	}
}

Skupiłem się głównie na konfiguracji ścieżek absolutnych, resztę pominąłem.

Teraz pliki z kodem:

calculator/add.ts:

export function add(a, b): number {
	return a + b;
}

calculator/sub.ts:

export function sub(a, b): number {
	return a - b;
}

calculator/index.ts:

export * from './add'
export * from './sub'

index.ts:

import { add, sub } from '@/calculator'

const resultAdd = add(2, 2);
const resultSub = sub(2, 2);

console.log('resultAdd: ', resultAdd); // 4
console.log('resultSub: ', resultSub); // 0

Po uruchomieniu kodu wszystko działa prawidłowo. Napiszmy teraz test przy użyciu Vitest.

add.test.ts:

import { expect, test } from 'vitest'
import { add } from '@/calculator'

test('should add two numbers', () => {
    // given
    const a = 2;
    const b = 2;
    const expected = 4;

    // when
    const result = add(a, b);

    // then
    expect(result).toEqual(expected)
})

Po uruchomieniu testu okazuje się, że mamy problem!

Error: Failed to load url @/calculator (resolved id: @/calculator)

Jak sobie z tym poradzić?

Ścieżki absolutne w Vitest

Można to naprawić w łatwy sposób. Otwórz plik vitest.config.js i dodaj taki kod:

import { defineConfig } from 'vite'
import path from 'path'

export default defineConfig({
    resolve: {
        alias: {
            '@': path.resolve(__dirname, './src')
        },
    },
})

Linijka:

 '@': path.resolve(__dirname, './src')

Poinformuje Vitest, jak ma "czytać" ścieżki zaczynające się od @.

Po dodaniu konfiguracji test zostanie poprawnie uruchomiony.


Podsumowanie: Listopad 2024

Opublikowano: 30.11.2024 - tagi: Blog Podsumowanie Listopad 2024

W listopadzie opublikowałem 1 wpis:


Webstorm:

  1. Jak przywrócić klasyczny wygląd Webstorma?

Przeczytałem 1 książkę:

  1. Piękni lśniący ludzie — Michael Grothaus

Przesłuchałem 4 audiobooki:

  1. Chrzest ognia — Andrzej Sapkowski
  2. Północna Droga. Saga Sigrun — Elżbieta Cherezińska
  3. Północna Droga. Ja jestem Halderd — Elżbieta Cherezińska
  4. Północna Droga. Pasja według Einara — Elżbieta Cherezińska

Webstorm: Jak przywrócić klasyczny wygląd Webstorma?

Opublikowano: 02.11.2024 - tagi: Webstorm IDE Wygląd UI

Klasyczny UI

JetBrains wprowadziło do swoich produktów nowy interfejs użytkownika o nazwie: New UI.

A co jeśli wolisz poprzednią wersję UI? Jest na to sposób. Wystarczy zainstalować plugin: Classic UI.

  1. Przejdź do ustawień: File -> Settings lub użyj skrótu klawiszowego: CTRL + ALT + S.
  2. Przejdź do Plugins.
  3. Za pomocą wyszukiwarki znajdź plugin o nazwie: Classic UI i zainstaluj.

Podsumowanie: Październik 2024

Opublikowano: 31.10.2024 - tagi: Blog Podsumowanie Październik 2024

W październiku opublikowałem 2 wpisy:


Webstorm:

  1. Podgląd historii schowka

Opublikowałem także komiks:

  1. Good QA

Przeczytałem 2 książki:

  1. Blade runner. Czy androidy marzą o elektrycznych owcach? — Philip K. Dick
  2. Biały tygrys — Adiga Aravind

Przesłuchałem 6 audiobooków:

  1. Głodna puszcza — Marcin Mortka
  2. Nawałnica mieczy: Krew i złoto — George R.R. Martin
  3. Przed wyruszeniem w drogę — Marcin Mortka
  4. Innowatorzy — Walter Isaacson
  5. Limes inferior — Janusz A. Zajdel
  6. Dziennik pokojówki — Loreth Anne White

Webstorm: Podgląd historii schowka

Opublikowano: 10.10.2024 - tagi: Webstorm IDE Schowek Historia Porada Skrót

Historia schowka

Praca programisty za pomocą skrótów: CTRL + C/CTRL + V to chleb powszedni. W Webstorm można sobie jeszcze usprawnić pracę ze schowkiem poprzez przegląd jego historii.

Żeby podejrzeć historię schowka, wystarczy użyć skrótu klawiszowego:

CTRL + SHIFT + V

Wyświetli się okno z historią wpisów, które wcześniej zostały użyte.

Po zamknięciu Webstrom i uruchomieniu go jeszcze raz historia schowka czyszczona i zachowany jest ostatni skopiowany fragment.