Needle Engine
  • README
  • Code Of Conduct
  • HOW TO
  • documentation
    • SUMMARY
    • _backlog-mermaid
    • _backlog
    • _meta-test
    • Automatic Component Generation
    • Needle Core Components
    • How To Debug
    • Deployment and Optimization
    • embedding
    • Everywhere Actions
    • Example Projects ✨
    • Exporting Assets, Animations, Prefabs, Materials, Lightmaps...
    • Questions and Answers (FAQ) 💡
    • Feature Overview
    • This page has been moved: continue here
    • getting-started
    • Frameworks, Bundlers, HTML
    • index
    • Additional Modules
    • Networking
    • Needle Engine Project Structure
    • Samples Projects
    • Scripting Examples
    • Creating and using Components
    • Live
    • Live
    • About
    • Live
    • Live
    • Live
    • Live
    • Support, Community & AI
    • Technical Overview
    • Testimonials
    • Testing on local devices
    • Using Needle Engine directly from HTML
    • vision
    • VR & AR (WebXR)
    • blender
      • Needle Engine for Blender
    • cloud
      • Needle Cloud
    • custom-integrations
      • index
    • getting-started
      • Scripting Introduction for Unity Developers
      • Getting Started & Installation
      • Scripting in Needle Engine
    • reference
      • needle.config.json
      • <needle-engine> Configuration
      • @serializable and other decorators
    • three
      • index
    • unity
      • Editor Sync
      • Needle Engine for Unity
    • lang
      • de
        • 404
        • SUMMARY
        • Automatische Komponenten-Generierung
        • Needle-Kernkomponenten
        • Debugging
        • Bereitstellung und Optimierung
        • embedding
        • Everywhere Actions
        • Beispielprojekte ✨
        • Assets, Animationen, Prefabs, Materialien, Lightmaps exportieren...
        • Fragen und Antworten (FAQ) 💡
        • Funktionsübersicht
        • Diese Seite wurde verschoben: hier fortfahren
        • getting-started
        • Frameworks, Bundler, HTML
        • index
        • Zusätzliche Module
        • Netzwerkfunktionen
        • Needle Engine Projektstruktur
        • Beispielprojekte
        • Scripting Beispiele
        • Erstellen und Verwenden von Komponenten
        • Live
        • Live
        • Über
        • Live
        • Live
        • Live
        • Live
        • Support und Community
        • Technischer Überblick
        • Erfahrungsberichte
        • Testen auf lokalen Geräten
        • Needle Engine direkt aus HTML verwenden
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine für Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Einführung in das Scripting für Unity-Entwickler
          • Erste Schritte & Installation
          • Scripting in Needle Engine
        • reference
          • needle.config.json
          • <needle-engine> Konfiguration
          • @serializable und andere Decorators
        • three
          • index
        • unity
          • Editor Synchronisierung
          • Needle Engine für Unity
      • es
        • SUMMARY
        • Generación Automática de Componentes
        • Componentes principales de Needle
        • Cómo Depurar
        • Despliegue y optimización
        • embedding
        • Acciones Everywhere
        • Proyectos de Ejemplo ✨
        • Exportación de Assets, Animaciones, Prefabs, Materiales, Lightmaps...
        • Preguntas Frecuentes (FAQ) 💡
        • Resumen de Características
        • Esta página ha sido movida: continúe aquí
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Módulos Adicionales
        • Redes
        • Estructura de Proyecto de Needle Engine
        • Proyectos de ejemplo
        • Ejemplos de scripting
        • Crear y usar Components
        • En vivo
        • En Vivo
        • Acerca de
        • En vivo
        • En vivo
        • En vivo
        • En vivo
        • Soporte y Comunidad
        • Resumen técnico
        • Testimonios
        • Testing on local devices
        • Usando Needle Engine directamente desde HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine para Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Introducción al Scripting para Desarrolladores de Unity
          • Primeros pasos e instalación
          • Scripting in Needle Engine
        • reference
          • needle.config.json
          • Configuración de <needle-engine>
          • @serializable y otros decoradores
        • three
          • index
        • unity
          • Editor Sync
          • Needle Engine para Unity
      • fr
        • SUMMARY
        • Génération automatique de composants
        • Composants principaux de Needle
        • Comment déboguer
        • Déploiement et Optimisation
        • embedding
        • Everywhere Actions
        • Exemples de Projets ✨
        • Exporter des Assets, des Animations, des Prefabs, des Matériaux, des Lightmaps...
        • Questions et Réponses (FAQ) 💡
        • Aperçu des fonctionnalités
        • Cette page a été déplacée : continuez ici
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Modules supplémentaires
        • Réseau
        • Structure du projet Needle Engine
        • Projets d'exemples
        • Exemples de Scripting
        • Créer et utiliser des Components
        • showcase-bike
        • En direct
        • À propos
        • En direct
        • Jouer
        • En direct
        • En direct
        • Support et Communauté
        • Vue d'ensemble technique
        • Témoignages
        • Tester sur les appareils locaux
        • Utiliser Needle Engine directement depuis HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine pour Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Introduction au Scripting pour les Développeurs Unity
          • Premiers pas et installation
          • Scripting in Needle Engine
        • reference
          • needle.config.json
          • <needle-engine> Configuration
          • @serializable et autres décorateurs
        • three
          • index
        • unity
          • Synchronisation de l'Editor (Editor Sync)
          • Needle Engine pour Unity
      • hi
        • SUMMARY
        • कंपोनेंट का स्वतः जनरेशन
        • नीडल कोर कंपोनेंट्स
        • How To Debug
        • Deployment and Optimization
        • embedding
        • Everywhere Actions
        • उदाहरण प्रोजेक्ट ✨
        • एसेट, एनिमेशन, प्रीफैब, मटेरियल, लाइटमैप्स... को एक्सपोर्ट करना
        • प्रश्न और उत्तर (FAQ) 💡
        • सुविधा अवलोकन
        • यह पृष्ठ स्थानांतरित कर दिया गया है: यहां जारी रखें
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • अतिरिक्त मॉड्यूल
        • नेटवर्किंग
        • Needle Engine प्रोजेक्ट स्ट्रक्चर
        • samples-and-modules
        • स्क्रिप्टिंग उदाहरण
        • कंपोनेंट बनाना और उपयोग करना
        • लाइव
        • लाइव
        • परिचय
        • लाइव
        • लाइव
        • लाइव
        • लाइव
        • समर्थन और समुदाय
        • तकनीकी अवलोकन
        • प्रशंसापत्र
        • Testing on local devices
        • HTML से सीधे Needle Engine का उपयोग करना
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine for Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Unity डेवलपर्स के लिए स्क्रिप्टिंग परिचय
          • आरंभ करना और इंस्टॉलेशन
          • Needle Engine में स्क्रिप्टिंग
        • reference
          • needle.config.json
          • <needle-engine> कॉन्फ़िगरेशन
          • @serializable and other decorators
        • three
          • index
        • unity
          • Editor Sync
          • Unity के लिए Needle Engine
      • ja
        • SUMMARY
        • 自動コンポーネント生成
        • Needleコアコンポーネント
        • デバッグの方法
        • デプロイと最適化
        • embedding
        • Everywhere Actions
        • サンプルプロジェクト ✨
        • アセット、アニメーション、Prefab、マテリアル、ライトマップなどのエクスポート
        • よくある質問(FAQ)💡
        • 機能概要
        • このページは移動しました: こちらからどうぞ
        • getting-started
        • フレームワーク、バンドラー、HTML
        • index
        • 追加モジュール
        • ネットワーキング
        • Needle Engineプロジェクトの構造
        • サンプルプロジェクト
        • スクリプティング例
        • Creating and using Components
        • ライブ
        • showcase-castle
        • 概要
        • ライブ
        • ライブ
        • ライブ
        • ライブ
        • サポートとコミュニティ
        • 技術概要
        • お客様の声
        • ローカルデバイスでのテスト
        • HTMLからNeedle Engineを直接使用する
        • vision
        • VR & AR (WebXR)
        • blender
          • Blender 用 Needle Engine
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Scripting Introduction for Unity Developers
          • はじめに & インストール
          • Needle Engineでのスクリプティング
        • reference
          • needle.config.json
          • <needle-engine> 設定
          • @serializable およびその他のデコレーター
        • three
          • index
        • unity
          • Editor Sync
          • Unity用Needle Engine
      • pt
        • SUMMARY
        • Automatic Component Generation
        • Componentes Principais do Needle
        • Como Depurar
        • Implementação e Otimização
        • embedding
        • Everywhere Actions
        • Projetos de Exemplo ✨
        • Exportar Recursos, Animações, Prefabs, Materiais, Lightmaps...
        • Perguntas e Respostas (FAQ) 💡
        • Visão Geral dos Recursos
        • Esta página foi movida: continue aqui
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Módulos Adicionais
        • Redes
        • Estrutura do Projeto Needle Engine
        • Projetos de Exemplo
        • Exemplos de Scripting
        • Criar e usar Componentes
        • Ao Vivo
        • Ao Vivo
        • Sobre
        • Ao Vivo
        • Ao Vivo
        • Ao Vivo
        • Ao Vivo
        • Suporte e Comunidade
        • Visão Geral Técnica
        • Depoimentos
        • Testar em dispositivos locais
        • vanilla-js
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine para Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Introdução à Scripting para Developers Unity
          • Começar e Instalação
          • Scripting no Needle Engine
        • reference
          • needle.config.json
          • needle-engine-attributes
          • @serializable e outros decorators
        • three
          • index
        • unity
          • Sincronização do Editor
          • Needle Engine para Unity
      • vn
        • 404
        • SUMMARY
        • Automatic Component Generation
        • Các Component Cốt lõi của Needle
        • Cách gỡ lỗi
        • Triển khai và Tối ưu hóa
        • embedding
        • Hành động ở mọi nơi (Everywhere Actions)
        • Các Dự Án Ví Dụ ✨
        • Xuất Tài sản, Hoạt ảnh, Prefab, Vật liệu, Lightmap...
        • Câu hỏi thường gặp (FAQ) 💡
        • Tổng quan tính năng
        • Trang này đã được di chuyển: tiếp tục tại đây
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Các Module Bổ Sung
        • Kết nối mạng
        • Cấu trúc dự án Needle Engine
        • samples-and-modules
        • Ví dụ về Scripting
        • Tạo và sử dụng Component
        • Trực tiếp
        • Trực tiếp
        • Giới thiệu
        • Trực tiếp
        • Chơi thử
        • Trực tiếp
        • Demo trực tiếp
        • Hỗ trợ và Cộng đồng
        • Tổng quan kỹ thuật
        • Lời chứng thực
        • Testing on local devices
        • Sử dụng Needle Engine trực tiếp từ HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine cho Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Giới thiệu về Scripting cho các nhà phát triển Unity
          • Getting Started & Installation
          • Scripting trong Needle Engine
        • reference
          • needle.config.json
          • Cấu hình <needle-engine>
          • @serializable và các decorator khác
        • three
          • index
        • unity
          • Editor Sync
          • Needle Engine cho Unity
      • zh
        • SUMMARY
        • 自动生成组件
        • Needle 核心组件
        • 如何调试
        • 部署与优化
        • embedding
        • Everywhere Actions
        • 示例项目 ✨
        • 导出资源、动画、预制体、材质、光照贴图...
        • 常见问题 (FAQ) 💡
        • 功能概览
        • 此页面已移动:请在此处继续
        • getting-started
        • 框架、打包器、HTML
        • index
        • 附加模块
        • 网络
        • Needle Engine 项目结构
        • 示例项目
        • Scripting Examples
        • Creating and using Components
        • 实时示例
        • 实时
        • 关于
        • 实时演示
        • 在线试玩
        • 实时演示
        • 现场演示
        • 支持与社区
        • 技术概述
        • 用户评价
        • Testing on local devices
        • 使用 Needle Engine 直接从 HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine for Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Scripting Introduction for Unity Developers
          • 入门与安装
          • 在 Needle Engine 中编写脚本
        • reference
          • needle.config.json
          • <needle-engine> 配置
          • @serializable and other decorators
        • three
          • index
        • unity
          • 编辑器同步
          • Unity 版 Needle Engine
Powered by GitBook
On this page
  • Bundling et frontends web
  • Créer une PWA
  • Accéder à Needle Engine et aux composants depuis du javascript externe
  • Personnaliser l'apparence du chargement
Edit on GitHub
  1. documentation
  2. lang
  3. fr

Frameworks, Bundlers, HTML

Previousgetting-startedNextindex

Last updated 26 days ago

Bundling et frontends web

Needle Engine est conçu comme un composant web. Cela signifie simplement installer @needle-tools/engine dans votre projet et inclure <needle-engine src="path/to/your.glb"> n'importe où dans votre projet web.

  • Installation avec npm:npm i @needle-tools/engine

Avec notre modèle de projet par défaut basé sur Vite, Needle Engine est regroupé (bundled) en une application web lors du déploiement. Cela garantit des fichiers plus petits, le tree-shaking (similaire au code stripping dans Unity) et optimise les temps de chargement. Au lieu de télécharger de nombreux petits scripts et composants, seul un ou quelques-uns sont téléchargés, contenant le code minimal nécessaire.

Vite (notre bundler par défaut) offre une bonne explication expliquant pourquoi les applications web devraient être regroupées (bundled) :

Vite, Vue, React, Svelte, React Three Fiber...

Needle Engine n'a pas de préférence quant au choix du framework. Notre modèle par défaut utilise le populaire comme bundler. À partir de là, vous pouvez ajouter vue, svelte, nuxt, react, react-three-fiber ou d'autres frameworks, et nous avons des exemples pour beaucoup d'entre eux. Vous pouvez également intégrer d'autres bundlers, ou n'en utiliser aucun – juste du HTML et Javascript simples.

Voici quelques exemples de piles technologiques possibles avec lesquelles nous utilisons Needle Engine :

  • Vite + HTML — C'est ce que notre modèle par défaut utilise !

  • Vite + Vue — C'est ce que le site web utilise ! Trouvez un exemple à télécharger .

  • Vite + Svelte

  • Vite + SvelteKit

  • Vite + React — Il existe un modèle expérimental inclus avec l'intégration Unity pour cela que vous pouvez choisir lors de la génération d'un projet !

  • react-three-fiber — Il existe un modèle expérimental inclus avec l'intégration Unity pour cela que vous pouvez choisir lors de la génération d'un projet !

  • Vercel & Nextjs — Trouvez un

  • CDN sans aucun bundler — Trouvez un exemple de code

En bref : nous proposons actuellement un modèle vite minimal, mais vous pouvez l'étendre ou passer à d'autres frameworks – Faites-nous savoir ce que vous construisez et comment, et comment nous pouvons améliorer l'expérience pour votre cas d'utilisation ou fournir un exemple !

:::details Comment créer un modèle de projet personnalisé dans Unity ?

Vous pouvez créer et partager vos propres modèles de projet web pour utiliser d'autres bundlers, systèmes de build, ou aucun du tout.

Créer un nouveau Modèle

  1. Sélectionnez Create/Needle Engine/Project Template pour ajouter un ProjectTemplate dans le dossier que vous souhaitez utiliser comme modèle

  2. Terminé ! C'est aussi simple que ça.

Les dépendances proviennent d'Unity lorsqu'il y a un NpmDef dans le projet (donc lorsque votre projet utilise des références locales). Vous pourriez également publier vos packages sur npm et y faire référence via un numéro de version. :::

Tree-shaking pour réduire la taille du bundle

:::details Comment supprimer le moteur physique Rapier ? (Réduit la taille globale du bundle en supprimant ~2Mo (~600Ko une fois compressé avec gzip))

  • Option 1: via la configuration needlePlugins : Définissez useRapier sur false dans votre vite.config : needlePlugins(command, needleConfig, { useRapier: false }),

  • Option 2: via la configuration vite.define : Déclarez la définition NEEDLE_USE_RAPIER avec false

    define: {
      NEEDLE_USE_RAPIER: false
    },
  • Option 3: via .env Créez un fichier .env dans votre projet web et ajoutez VITE_NEEDLE_USE_RAPIER=false

:::

Créer une PWA

Nous prenons en charge la création aisée d'une Progressive Web App (PWA) directement à partir de notre modèle vite. Les PWAs sont des applications web qui se chargent comme des pages web ou des sites web ordinaires, mais peuvent offrir des fonctionnalités utilisateur telles que le travail hors ligne, les notifications push et l'accès au matériel de l'appareil, traditionnellement disponibles uniquement pour les applications mobiles natives.

Par défaut, les PWAs créées avec Needle prennent en charge le mode hors ligne et peuvent éventuellement se rafraîchir automatiquement lorsque vous publiez une nouvelle version de votre application.

  1. Modifiez vite.config.js comme indiqué ci-dessous. Assurez-vous de passer le même objet pwaOptions à la fois à needlePlugins et à VitePWA.

import { VitePWA } from 'vite-plugin-pwa';

export default defineConfig(async ({ command }) => {

    // Create the pwaOptions object.
    // You can edit or enter PWA settings here (e.g. change the PWA name or add icons).
    // Créez l'objet pwaOptions.
    // Vous pouvez modifier ou saisir les paramètres PWA ici (par exemple, changer le nom de la PWA ou ajouter des icônes).
    /** @type {import("vite-plugin-pwa").VitePWAOptions} */
    const pwaOptions = {};

    const { needlePlugins } = await import("@needle-tools/engine/plugins/vite/index.js");

    return {
        plugins: [
            // pass the pwaOptions object to the needlePlugins and the VitePWA function
            // passez l'objet pwaOptions aux fonctions needlePlugins et VitePWA
            needlePlugins(command, needleConfig, { pwa: pwaOptions }),
            VitePWA(pwaOptions),
        ],
        // the rest of your vite config...
        // le reste de votre configuration vite...

Tester les PWAs

Pour tester votre PWA, déployez la page, par exemple en utilisant le composant DeployToFTP. Ensuite, ouvrez la page déployée dans un navigateur et vérifiez si les fonctionnalités PWA fonctionnent comme prévu :

  • l'application apparaît comme installable

  • l'application fonctionne hors ligne

Les PWAs utilisent des Service Workers pour mettre en cache les ressources et fournir un support hors ligne. Les Service Workers sont un peu plus difficiles à utiliser pendant le développement, et ne sont généralement activés que pour les builds (par exemple, lorsque vous utilisez un composant DeployTo...).

Vous pouvez activer le support PWA pour le développement en ajoutant ce qui suit à l'objet options dans votre vite.config.js.

const pwaOptions = {
  // Note: PWAs behave different in dev mode.
  // Make sure to verify the behaviour in production builds!
  // Note : Les PWAs se comportent différemment en mode développement.
  // Assurez-vous de vérifier le comportement dans les builds de production !
  devOptions: {
    enabled: true,
  }
};

Veuillez noter que les PWAs en mode développement ne prennent pas en charge l'utilisation hors ligne – essayer pourrait entraîner un comportement inattendu.

Mettre à jour automatiquement les applications en cours d'exécution

Les sites web affichent généralement du contenu nouveau ou mis à jour lors d'un rafraîchissement de page.

Dans certaines situations, vous pourriez vouloir que la page se rafraîchisse et se recharge automatiquement lorsqu'une nouvelle version a été publiée – comme dans un musée, un salon professionnel, un affichage public, ou d'autres scénarios de longue durée.

Pour activer les mises à jour automatiques, définissez la propriété updateInterval dans l'objet pwaOptions sur une durée (en millisecondes) pendant laquelle l'application doit vérifier les mises à jour. Si une mise à jour est détectée, la page se rechargera automatiquement.

const pwaOptions = {
  updateInterval: 15 * 60 * 1000, // 15 minutes, en millisecondes
};

Plus d'options PWA

const pwaOptions = {
  // manifest options provided here will override the defaults
  // les options du manifeste fournies ici remplaceront les valeurs par défaut
  manifest: {
    name: "My App",
    short_name: "My App",
    theme_color: "#B2D464",
  }
};

Pour des exigences complexes comme le cache partiel, les service workers personnalisés ou différentes stratégies de mise à jour, vous pouvez supprimer l'option { pwa: pwaOptions } de needlePlugins et ajouter la fonctionnalité PWA directement via le plugin Vite PWA.

Accéder à Needle Engine et aux composants depuis du javascript externe

Personnaliser l'apparence du chargement

Styles intégrés

L'apparence de chargement de needle-engine peut utiliser un thème clair (light) ou sombre (dark). Pour changer l'apparence, utilisez l'attribut loading-style sur le composant web <needle-engine>. Les options sont light (clair) et dark (sombre) (par défaut) :

<needle-engine loading-style="light"></needle-engine>

Style de chargement personnalisé — Fonctionnalité PRO

Page traduite automatiquement par l'IA

:::tip Certains frameworks nécessitent des paramètres personnalisés dans needle.config.json. Apprenez-en davantage . Typiquement, la baseUrl doit être définie. :::

Le Tree shaking fait référence à une pratique courante en matière de regroupement (bundling) d'applications web (). Cela signifie que les chemins de code et les fonctionnalités qui ne sont pas utilisés dans votre code seront supprimés des fichiers javascript finaux regroupés (bundled) afin de réduire la taille des fichiers. Voir ci-dessous les fonctionnalités que Needle Engine inclut et comment les supprimer :

Option 4: via le composant Unity Ajoutez le composant Needle Engine Modules à votre scène et définissez Physics Engine sur None

Installez le dans votre projet web : npm install vite-plugin-pwa --save-dev

:::tip Tous les assets sont mis en cache par défaut Notez que par défaut, tous les assets de votre dossier de build sont ajoutés au pré-cache de la PWA – pour les grandes applications avec de nombreux assets dynamiques, ce n'est peut-être pas ce que vous souhaitez (imaginez la PWA YouTube mettant en cache toutes les vidéos une fois qu'un utilisateur ouvre l'application !). Voir pour savoir comment personnaliser ce comportement. :::

l'application est détectée comme PWA capable de fonctionner hors ligne par

:::tip Rechargements Périodiques et Données Utilisateur Il n'est pas recommandé d'utiliser les rechargements automatiques dans les applications où les utilisateurs interagissent avec des formulaires ou d'autres données qui pourraient être perdues lors d'un rechargement. Pour ces applications, il est recommandé d'afficher une invite de rechargement. Consultez la pour plus d'informations sur la façon d'implémenter une invite de rechargement au lieu d'un rechargement automatique. :::

Étant donné que Needle utilise le en coulisses, vous pouvez utiliser toutes les options et les hooks qu'il fournit. Par exemple, vous pouvez fournir un manifeste partiel avec un titre d'application ou une couleur de thème personnalisés :

Le code que vous exposez est accessible depuis JavaScript après le bundling. Cela permet de créer des visualiseurs et d'autres applications où il y a une séparation entre les données connues au moment de l'édition et les données connues uniquement à l'exécution (par exemple, les fichiers chargés dynamiquement, le contenu généré par l'utilisateur). Pour accéder aux composants depuis du javascript ordinaire en dehors du moteur, veuillez vous référer à la section

Voir la section Loading Display dans la

Veuillez consulter la section Loading Display dans la

custom loading
Why Bundle for Production
vite
Needle Tools
ici
exemple de projet nextjs ici
ici
ici
voir documentation MSDN
plugin Vite PWA
pwabuilder.com
documentation du plugin Vite PWA
plugin Vite PWA
référence des composants Needle Engine
référence des composants Needle Engine
Plus d'options PWA
interopérabilité avec du javascript ordinaire