efektywne środowisko Node.js

Aby stworzyć efektywne środowisko Node.js na Linuxie (Ubuntu, Mint, Debian) do programowania frontendu z różnymi frameworkami (Vue.js, Svelte, SvelteKit, Qwik), które pozwala na izolację projektów (podobnie jak venv w Pythonie) oraz wybór wersji Node.js, możemy skorzystać z narzędzi takich jak nvm (Node Version Manager) oraz pnpm (szybki i efektywny menedżer pakietów). Poniżej przedstawiam krok po kroku, jak to zrobić.


Krok 1: Instalacja nvm (Node Version Manager)

nvm pozwala na łatwe zarządzanie wieloma wersjami Node.js na jednym systemie.

  1. Zainstaluj nvm:
    Otwórz terminal i wykonaj następujące polecenie:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  2. Załadowanie nvm do bieżącej sesji terminala:
    Po instalacji dodaj nvm do swojego środowiska:

    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
  3. Sprawdź, czy nvm działa:

    nvm --version

Krok 2: Instalacja wybranej wersji Node.js

  1. Zainstaluj konkretną wersję Node.js:
    Na przykład, aby zainstalować Node.js w wersji 18:

    nvm install 18
  2. Użyj zainstalowanej wersji:

    nvm use 18
  3. Sprawdź wersję Node.js i npm:

    node -v
    npm -v
  4. Ustaw domyślną wersję Node.js (opcjonalnie):
    Jeśli chcesz, aby ta wersja była domyślna:

    nvm alias default 18

Krok 3: Instalacja pnpm (opcjonalnie, ale zalecane)

pnpm to szybki i efektywny menedżer pakietów, który oszczędza miejsce na dysku, współdzieląc zależności między projektami.

  1. Zainstaluj pnpm globalnie:

    npm install -g pnpm
  2. Sprawdź wersję pnpm:

    pnpm -v

Krok 4: Tworzenie izolowanych projektów

Aby tworzyć izolowane projekty (podobnie jak venv w Pythonie), możemy skorzystać z pnpm lub npm z lokalnymi zależnościami.

Przykład: Tworzenie projektu Vue.js

  1. Utwórz katalog projektu:

    mkdir my-vue-project
    cd my-vue-project
  2. Zainicjuj projekt:

    pnpm init
  3. Zainstaluj Vue.js:

    pnpm add vue
  4. Utwórz plik index.html i main.js:

    <!-- index.html -->
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Vue.js Project</title>
    </head>
    <body>
      <div id="app"></div>
      <script src="main.js"></script>
    </body>
    </html>

    // main.js ------------------------------- import { createApp } from 'vue'; const app = createApp({ data() { return { message: 'Witaj, Vue!', }; }, }); app.mount('#app');
  1. Uruchom projekt:
    Użyj narzędzia takiego jak vite do uruchomienia projektu:

    pnpm create vite@latest

Przykład: Tworzenie projektu Svelte

  1. Utwórz katalog projektu:

    mkdir my-svelte-project
    cd my-svelte-project
  2. Zainicjuj projekt:

    pnpm init
  3. Zainstaluj Svelte:

    pnpm add svelte
  4. Utwórz plik App.svelte i main.js:

    <!-- App.svelte -->
    <script>
      let message = 'Witaj, Svelte!';
    </script>
          
    <h1>{message}</h1>
    
    // main.js --------------
    import App from './App.svelte';
           
    const app = new App({
      target: document.body,
    });
    
    export default app;
  5. Uruchom projekt:
    Użyj narzędzia vite:

    pnpm create vite@latest

Przykład: Tworzenie projektu SvelteKit

  1. Utwórz projekt SvelteKit:

    pnpm create svelte@latest my-sveltekit-project
    cd my-sveltekit-project
    pnpm install
  2. Uruchom projekt:

    pnpm run dev

Przykład: Tworzenie projektu Qwik

  1. Utwórz projekt Qwik:

    pnpm create qwik@latest my-qwik-project
    cd my-qwik-project
    pnpm install
  2. Uruchom projekt:

    pnpm start

Krok 5: Zarządzanie wieloma projektami

Każdy projekt ma swój własny katalog z lokalnymi zależnościami (node_modules), dzięki czemu są one izolowane. Możesz łatwo przełączać się między projektami i używać różnych wersji Node.js za pomocą nvm.


Podsumowanie

Dzięki temu środowisku:

  1. Możesz używać różnych wersji Node.js za pomocą nvm.

  2. Każdy projekt jest izolowany dzięki lokalnym zależnościom.

  3. Możesz efektywnie zarządzać zależnościami za pomocą pnpm.

  4. Możesz tworzyć projekty w różnych frameworkach (Vue.js, Svelte, SvelteKit, Qwik) w jednym systemie.