AngularViteHTML启动器

AngularTemplate — Angular 启动器模板

作者 EmmanuelLefevre

基于 Angular 的启动器模板,预置 ESLint、Prettier、Vitest、Supabase 认证、I18n、SEO/PWA 与 GitHub Actions 流水线,采用 MIT 许可。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-03查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

预置 ESLint、Prettier、HTMLHint、StyleLint、SecretLint 与 SonarCloud 的代码质量配置

02

集成 Snyk、GitLeaks、CodeQL 安全扫描,以及 Husky 与 lint-staged 本地提交门禁

03

使用 Vite、Esbuild、PNPM 与 Corepack 的开发与构建工具链,单元测试基于 Vitest

04

内置 Supabase 认证、角色管理、路由 Guards、HTTP Interceptors 与全局错误视图

05

提供 Public/Private 区域、Admin Dashboard、内部 UI 组件库与变量化 Design System

06

包含 NGX-Translate 多语言、动态 Meta、sitemap、robots、manifest 与 Compodoc 文档

模板详细介绍

AngularTemplate 是一个面向 Angular 项目的启动器模板,仓库由 EmmanuelLefevre 维护,采用 MIT 许可。它把开发环境、代码质量、测试、安全扫描、CI/CD 与发布流程预先配置好,让团队从第一个提交起就使用统一的工具链,而不是从空白骨架开始搭建。

模板内置的工程化配置包括:ESLint(flat-config)、Prettier、HTMLHint、StyleLint、SecretLint,并接入 SonarCloud;安全方面使用 Snyk、GitLeaks 与 CodeQL 扫描;本地提交通过 Husky 与 lint-staged 在 commit 阶段执行格式化、lint 与密钥检查。构建与开发服务器使用 Esbuild 与 Vite,包管理器为 PNPM,并通过 Corepack 锁定版本。单元测试使用 Vitest。CI/CD 由 GitHub Actions 承担,Semantic Release 负责版本号、Changelog、GitHub Release 与 GitHub Packages 发布。

应用层面,模板提供 Public 与 Private 区域、Admin Dashboard、路由 Guards、HTTP Interceptors、全局错误处理(401、403、404、500、408/504、503 等视图),以及基于 Supabase 的认证与角色(Admin/User)管理,全局状态使用 Angular Signals。UI 侧包含内部组件库(表单、输入、按钮、链接、ScrollToTop 等)与布局(Public、Admin、Header、Footer、Nav),样式采用变量化的 Design System 与移动优先思路。此外集成 NGX-Translate 多语言、动态 Meta 服务、sitemap.xml、robots.txt、manifest.json,并提供 Compodoc 文档与 GitHub Pages 托管。

使用前需注意:运行环境要求 Node.js 与 Angular 的特定版本范围,需通过 NVM 与 Corepack 准备;需在根目录创建 .env 并填写后端 API 地址与 Supabase 的 URL 和匿名密钥。维护模式切换依赖 GitHub Actions 工作流与服务器 SSH 及 .htaccess 配置,并非开箱即用。演示图片、字体、图标等第三方素材需单独核对许可,域名、托管、数据库等外部服务可能另行收费。

AngularViteHTML启动器

适合你的项目吗?

适用场景

  • 需要一个已配置好 lint、测试、安全扫描与 CI/CD 的 Angular 项目起点
  • 构建带 Supabase 登录注册、Admin/User 角色与后台仪表盘的应用
  • 搭建包含 Public 与 Private 区域、路由守卫与统一错误处理页面的中后台前端
  • 需要多语言、SEO 元信息与 PWA 基础配置的 Angular 站点

适合人群

  • 熟悉 Angular 与 PNPM 工作流的前端团队
  • 需要统一代码规范与提交门禁的中大型项目
  • 计划使用 Supabase 作为认证与数据后端的开发者
  • 希望从模板起步并自行扩展业务模块的工程团队

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需通过 NVM 安装并切换到模板要求的 Node.js 版本

  2. 2

    执行 corepack enable 后使用 pnpm install --frozen-lockfile 安装依赖,pnpm start 启动

  3. 3

    在项目根目录创建 .env,填写 NG_APP_BACKEND_API_URL、NG_APP_SUPABASE_URL 与 NG_APP_SUPABASE_ANON_KEY

  4. 4

    维护模式切换依赖 GitHub Actions 工作流与服务器 SSH、.htaccess 配置,需按部署环境自行准备

  5. 5

    演示图片、字体、图标等第三方素材需单独核对许可,外部服务可能另行收费

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 项目要求使用特定版本的 Node.js,需通过 NVM 安装并切换到指定版本(如 22.21.1)后才能运行。
  • 项目依赖 Corepack 锁定 PNPM 版本,需先执行 corepack enable 才能保证依赖安装环境一致。
  • 使用前必须在项目根目录创建 .env 文件并填写后端 API 地址与 Supabase 配置密钥。
  • 认证功能依赖 Supabase 外部服务,需自行提供 Supabase URL 与匿名密钥,属于外部服务要求。
  • 维护模式切换功能依赖 GitHub Actions 工作流通过 SSH 连接服务器并操作 .htaccess 文件,需自行准备服务器与部署配置,并非开箱即用。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

Ce projet nécessite une version précise de **NodeJS**. Utilisez **NVM**.

README 原文

Ce projet utilise **Corepack** (inclus dans **NodeJS**) pour garantir que tous les développeurs utilisent exactement la même version de **PNPM** (définie dans le `package.json`).

README 原文

Créer un fichier `.env` à la racine de l'application et renseigner les clés de configuration (**API endpoint** et **Supabase**)

README 原文

NG_APP_SUPABASE_URL=votre_url_supabase NG_APP_SUPABASE_ANON_KEY=votre_cle_anonyme_supabase

README 原文

Pour cela le script se connecte en **SSH** pour piloter le fichier `maintenance.enable` intercepté par le `.htaccess`.

README 原文
https://github.com/EmmanuelLefevre/AngularTemplate/blob/main/LICENSEhttps://github.com/EmmanuelLefevre/AngularTemplate/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-04。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 92 / 100
技术栈
Angular · Vite · HTML
网站类型
启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-08-04
截图检查日期
2026-10-04

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Angular。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-04

查看当时使用的来源资料

SHA-256: 13df0613ab906b384b058d42ad08e65d73c81c4a9ae553322fec099920f651d0

2026-10-04T07:36:13.326Z

来源文件 / 仓库
<div align="center">
  <img src="https://visitor-badge.laobi.icu/badge?page_id=EmmanuelLefevre.AngularTemplate" alt="Visitors"/>
  &nbsp;&nbsp;<img src="https://img.shields.io/github/last-commit/EmmanuelLefevre/AngularTemplate" alt="Last Commit"/>&nbsp;&nbsp;
  <img src="https://img.shields.io/github/license/EmmanuelLefevre/AngularTemplate" alt="License MIT"/>
</div>

<br>

<div align="center"><a href="https://github.com/EmmanuelLefevre/AngularTemplate/actions"><img src="https://github.com/EmmanuelLefevre/AngularTemplate/actions/workflows/pipeline.yml/badge.svg" alt="CI/CD Pipeline"/></a>&nbsp;&nbsp;<a href="https://snyk.io/test/github/EmmanuelLefevre/AngularTemplate"><img src="https://snyk.io/test/github/EmmanuelLefevre/AngularTemplate/badge.svg?targetFile=package.json" alt="Libraries Vulnerabilities"/></a></div>

<br>

<div align="center"><a href="https://sonarcloud.io/api/dashboard?id=emmanuel-lefevre_angular-template"><img src="https://sonarcloud.io/api/project_badges/measure?project=emmanuel-lefevre_angular-template&metric=security_rating" alt="Security Rating"/></a>&nbsp;&nbsp;<a href="https://sonarcloud.io/dashboard?id=emmanuel-lefevre_angular-template"><img src="https://sonarcloud.io/api/project_badges/measure?project=emmanuel-lefevre_angular-template&metric=alert_status" alt="Quality Gate"/></a>&nbsp;&nbsp;<a href="https://sonarcloud.io/dashboard?id=emmanuel-lefevre_angular-template"><img src="https://sonarcloud.io/api/project_badges/measure?project=emmanuel-lefevre_angular-template&metric=coverage" alt="Coverage"/></a></div>

<br>

<br>

<br>

<h1 id="angular-template" align="center">
  <img
    alt="Angular"
    title="Angular"
    width="34px"
    src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/angular/angular-original.svg"
  />
  ANGULAR TEMPLATE
  <img
    alt="Angular"
    title="Angular"
    width="34px"
    src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/angular/angular-original.svg"
  />
</h1>

<br>
<br>

## SOMMAIRE

- [PRÉSENTATION](#-présentation)
- [DOCUMENTATION](#-documentation)
- [QUICK START](#-quick-start)
  - [Requirements](#requirements)
  - [Installation & Démarrage](#installation--démarrage)

## 🚀 PRÉSENTATION

> **"L'excellence industrielle dès le premier commit !"**

Ce projet n'est pas simplement un squelette d'application, c'est un **accélérateur de développement Angular 21** conçu pour les équipes exigeantes.

Il incarne une philosophie **"Zéro Config - Maximum Quality"**.

Tout a été pré-configuré avec certains des outils les plus stricts du marché afin de se concentrer uniquement sur la valeur métier sans se soucier de la dette technique.

### 🔥 Pourquoi ce template ?

✨ **Qualité :**
Une config **ESLint** (flat-config) & **Prettier** stricte (mais aussi **HTMLHint**, **StyleLint**, **SecretLint**), couplée à **SonarCloud** pour un code propre, uniforme et maintenable.

🛡️ **Sécurité :**
Scans automatiques de vulnérabilités (**Snyk**), détection de secrets (**GitLeaks**) et analyse statique avancée (**CodeQL**).

⚡ **Haute Performance :**
Build ultra-rapide (**Esbuild**), serveur de développement quasi instantané (**Vite**) et gestionnaire de paquets optimisé et reproductible via (**PNPM**).

🧪 **Tests Next-Gen :**
Stratégie de tests unitaires modernisée propulsée par **Vitest** offrant une exécution instantanée et une compatibilité native avec l'écosystème **Vite**.

🚧 **Gatekeeping Local :**
Finis les commits cassés. **Husky** et **lint-staged** interceptent chaque commit pour formater, linter et vérifier les secrets sur les fichiers modifiés uniquement. La qualité est forcée à la source avant même d'arriver sur la CI.

🤖 **CI/CD Ready :**
Pipelines **GitHub Actions** complètes incluant tests, linting, documentations, audits de sécurité et déploiement.

🏷️ **Packaging & Release Automatisés :**
Fini la gestion manuelle des versions. Le template intègre **Semantic Release** pour calculer automatiquement le **SemVer**, générer le **Changelog**, créer la **Release GitHub** et publier les artefacts sur **GitHub Packages**.

🛠️ **DX & Corepack :**
Onboarding immédiat. Grâce à **Corepack**, le projet installe et utilise automatiquement la version stricte de **PNPM** définie dans le `package.json`. Fini les conflits de versions entre développeurs ou les installations globales.

♿ **Accessibilité Native :**
Conformité **RGAA / WCAG** intégrée dès le départ. Structure sémantique stricte, navigation au clavier et gestion du focus testées pour une inclusion totale.

📈 **SEO & PWA Ready :**
Maximisez votre visibilité. Un **Service Meta** dynamique gère vos balises `<head>` en temps réel selon les routes. Le tout est épaulé par une configuration native des fichiers **`sitemap.xml`**, **`robots.txt`** et **`manifest.json`** pour une indexation parfaite et une compatibilité mobile.

🗣️ **Multi-langues :**
**I18n** intégré par défaut via **NGX-Translate** permettant de gérer facilement les traductions et de séparer le contenu de la logique métier.
<!-- L'intégrité des traductions est garantie par un outillage automatisé :

- 🕵️‍♂️ **Extraction automatique :** `pnpm i18n:extract` => scanne le code pour générer et mettre à jour les fichiers **JSON** sans effort manuel.
- 👮 **Validation stricte :** `pnpm i18n:lint` un garde-fou **CI/CD** qui bloque le déploiement si une clé est manquante ou inutilisée. -->

🎨 **Design System & Mobile-First :**
Conception intégralement pensée pour le mobile. Le **Design System** est entièrement variabilisé (mixins, couleurs, polices, espacements...) pour une personnalisation sans douleur.

🧩 **Smart UI Kit :**
Une bibliothèque de composants internes (Custom Form, Generic Input, Button, Link, ScrollToTop...) et des layouts (Public, Admin, Header, Footer, Nav...) prêts à l'emploi. **Tous couverts à 100% par des tests.**

🧠 **Architecture :**
Des **Interceptors** robustes, des **Guards** d'authentification, une partie de l'application **Public** et **Private** ainsi qu'un **Dashboard Admin** fonctionnel sont déjà configurés. **Tous couverts à 100% par des tests.**

🔐 **Authentification Supabase :**
Mécanique d'authentification robuste et sécurisée pré-configurée avec **Supabase**. Gestion des sessions, des rôles (Admin/User), guards de routage stricts et flux complet d'inscription/connexion. L'état global est piloté via les **Angular Signals** pour une réactivité parfaite.

📢 **Résilience & Gestion des Erreurs :**
Un **Error Handler** global intercepte et redirige intelligemment vers des vues dédiées pour chaque scénario (**401**, **403**, **404**, **500**, **Generic**, **Timeout 408/504**, **Unknown**...). Une gestion du code **HHTP 503** est implémentée à double niveau : si l'**API** est indisponible, **Angular** affiche sa vue de maintenance. Si c'est l'application elle-même qui est en mise à jour (**Front-End** down), un mécanisme serveur (`.htaccess` via trigger **CI/CD**) prend instantanément le relais avec une page pur **HTML**/**CSS** statique. Le **SEO** est maintenu !

🛠️ **Pipes & Directives :**
Des outils essentiels comme des **Directives** (`input-focus`, `input-trim`, `input-uppercase`...) et des **Pipes** (`date-format`...) sont inclus. **Tous couverts à 100% par des tests.**

📘 **Documentation :**
Architecture documentée en temps réel. **Compodoc** génère une documentation technique complète, automatiquement déployée et hébergée sur **GitHub Pages** à chaque merge sur le code stable (branche `main`). Cette **Compodoc** est évidemment aussi disponible en environnement local !

🚦 **Toggle Maintenance :**
Besoin de geler l'application en production pour une maintenance ? Un workflow **GitHub Actions** dédié agit comme un interrupteur (`toggle-maintenance.yml`). Depuis l'onglet `Actions` de **GitHub**, un simple clic permet d'activer ou de désactiver la page de maintenance statique (**Erreur 503**). Pour cela le script se connecte en **SSH** pour piloter le fichier `maintenance.enable` intercepté par le `.htaccess`.

- Un script ping le serveur et recharge automatiquement le client dès lors que le site revient en ligne (sans intervention manuelle **F5**). ✨✨✨

- L'utilisation du code **HTTP 503** préserve totalement votre **SEO**. Il indique aux robots d'indexation que l'indisponibilité n'est que temporaire, les invitant à repasser plus tard sans jamais pénaliser le positionnement du site. 📈📈📈

![Toggle Maintenance Mode](https://github.com/EmmanuelLefevre/MarkdownImg/blob/main/toggle_maintenance_mode.png)

## 📚 DOCUMENTATION

La documentation détaillée est disponible ici :

- 🏗 [Architecture](./docs/ARCHITECTURE.md)
- 🚀 [Setup](./docs/SETUP.md)
- 💎 [Qualité](./docs/QUALITE.md)
- 🧪 [Tests](./docs/TESTS.md)
- ⚙️ [Configuration](./docs/CONFIGURATION.md)
- 🏷️ [Build & Packaging](./docs/BUILD-&-PACKAGING.md)
- 🤖 [CICD](./docs/CICD.md)
- 🎨 [Styles](./docs/STYLES.md)
- 🗣️ [Multi Langues](./docs/MULTI-LANGUES.md)
- ♿ [Accessibilité](./docs/ACCESSIBILITE.md)
- 📈 [SEO](./docs/SEO.md)
- 📘 [Documentation](./docs/DOCUMENTATION.md)
- 🔧 [Rules Reference](./docs/RULES-REFERENCES.md)
- 💡 [FAQ & Erreurs](./docs/FAQ-&-ERREURS.md)

<br>

> [🔗 Lien vers la documentation GitHub Pages](https://emmanuellefevre.github.io/AngularTemplate/)

## ⚡ QUICK START

### Requirements

|   Angular  |                  Node.js                  |         TypeScript       |           RxJS         |
| :--------- | :---------------------------------------- | :----------------------- | :--------------------- |
|  `21.0.x`  | `^20.19.0` \|\| `^22.21.1` \|\| `^24.0.0` | `>=5.9.0` \|\| `<=6.0.0` | `^6.5.3` \|\| `^7.4.0` |

**Etape 1 :** Node.js

- Ce projet nécessite une version précise de **NodeJS**. Utilisez **NVM**.

```shell
nvm install 22.21.1
nvm use 22.21.1
```

> [🔗 NVM Cheatsheets](https://github.com/EmmanuelLefevre/Documentations/blob/main/Personnal%20Cheatsheets/nvm_cheatsheets.md)

**Etape 2 :** Gestionnaire de paquets : **PNPM** & **Corepack**

Ce projet utilise **Corepack** (inclus dans **NodeJS**) pour garantir que tous les développeurs utilisent exactement la même version de **PNPM** (définie dans le `package.json`).

⚠️ Vous pouvez toutefois installer **PNPM** en global.

> [👀 Setup](./docs/SETUP.md#pnpm)

### Installation & Démarrage

- Via Clone **SSH**

```bash
git clone [email protected]:EmmanuelLefevre/AngularTemplate.git
cd AngularTemplate
corepack enable
pnpm install --frozen-lockfile
pnpm start
```

- Via Package

```bash

```

### Configuration de l'environnement

Créer un fichier `.env` à la racine de l'application et renseigner les clés de configuration (**API endpoint** et **Supabase**) :

```bash
NG_APP_BACKEND_API_URL=https://monbackend/api
NG_APP_SUPABASE_URL=votre_url_supabase
NG_APP_SUPABASE_ANON_KEY=votre_cle_anonyme_supabase
```

### Installation de la CLI Angular en global

```bash
pnpm add -g @angular/[email protected]
```

### Installer une librairie

- En DEV

```bash
pnpm add -DE <MA_LIBRAIRIE>@latest
```

- En PROD

```bash
pnpm add -E <MA_LIBRAIRIE>@latest
```
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。