Analog
On this page

Verwendung von Storybook mit Angular und Vite

Storybook ist ein Frontend-Workshop fĂźr die isolierte Erstellung von UI-Komponenten und Seiten.

Angular und Storybook verwenden standardmäßig Webpack zum Erstellen und Bereitstellen der Storybook-Anwendung.

Dieser Leitfaden fĂźhrt dich durch den Prozess der Umstellung auf die Erstellung und Bereitstellung deines Storybooks mit Angular unter Verwendung von Vite. Dieser Prozess kann auf jedes Angular-Projekt mit Storybook angewendet werden.

Storybook einrichten

Ist Storybook noch nicht eingerichtet, fĂźhren den folgenden Befehl aus, um Storybook fĂźr das Projekt zu initialisieren:

npx storybook@latest init

Folge den Anweisungen und übernehme deine Änderungen.

Storybook und Vite-Pakete installieren

Installieren das Vite-Plugin fĂźr Angular und den Vite Builder fĂźr Storybook. FĂźhre je nach bevorzugtem Paketmanager einen der folgenden Befehle aus:

npm install @analogjs/vite-plugin-angular @storybook/builder-vite --save-dev

Konfigurieren von Storybook zur Verwendung des Vite Builder

Aktualisieren die Datei .storybook/main.ts, um @storybook/builder-vite zu verwenden, und fĂźgen die Konfigurationsfunktion viteFinal hinzu, um das Vite-Plugin fĂźr Angular zu konfigurieren.

const config: StorybookConfig & StorybookConfigVite = {
  // other config, addons, etc.
  core: {
    builder: {
      name: '@storybook/builder-vite',
      options: {
        viteConfigPath: undefined,
      },
    },
  },
  async viteFinal(config: UserConfig) {
    // Merge custom configuration into the default config
    const { mergeConfig } = await import('vite');
    const { default: angular } = await import('@analogjs/vite-plugin-angular');

    return mergeConfig(config, {
      // Add dependencies to pre-optimization
      optimizeDeps: {
        include: [
          '@storybook/angular',
          '@storybook/angular/dist/client',
          '@angular/compiler',
          '@storybook/blocks',
          'tslib',
        ],
      },
      plugins: [angular({ jit: true, tsconfig: './.storybook/tsconfig.json' })],
    });
  },
};

Entferne die webpackFinal-Konfigurationsfunktion, falls vorhanden.

Aktualisiere als Nächstes die package.json, um die Storybook-Befehle direkt auszufßhren.

{
  "name": "my-app",
  "scripts": {
    "storybook": "storybook dev --port 4400",
    "build-storybook": "storybook build"
  }
}

Du kannst auch die Storybook-Ziele in der Datei angular.json entfernen.

Wenn du Nx verwendest, aktualisiere deine project.json-Storybook-Ziele, um die Storybook-Befehle auszufĂźhren:

    "storybook": {
      "executor": "nx:run-commands",
      "options": {
        "cwd": "apps/my-app",
        "command": "storybook dev --port 4400"
      }
    },
    "build-storybook": {
      "executor": "nx:run-commands",
      "options": {
        "cwd": "apps/my-app",
        "command": "storybook build --output-dir ../../dist/storybook/my-app"
      }
    }

FĂźge den Ordner /storybook-static zu deiner .gitignore-Datei hinzu.

Starten von Storybook

FĂźhre die Storybook-Befehle direkt aus, um den Entwicklungsserver zu starten.

npm run storybook

Erstellen von Storybook

FĂźhre die Storybook-Befehle aus, um das Storybook zu erstellen.

npm run build-storybook