预置 ESLint、Prettier、HTMLHint、StyleLint、SecretLint 与 SonarCloud 的代码质量配置
AngularTemplate — Angular 启动器模板
作者 EmmanuelLefevre
基于 Angular 的启动器模板,预置 ESLint、Prettier、Vitest、Supabase 认证、I18n、SEO/PWA 与 GitHub Actions 流水线,采用 MIT 许可。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
集成 Snyk、GitLeaks、CodeQL 安全扫描,以及 Husky 与 lint-staged 本地提交门禁
使用 Vite、Esbuild、PNPM 与 Corepack 的开发与构建工具链,单元测试基于 Vitest
内置 Supabase 认证、角色管理、路由 Guards、HTTP Interceptors 与全局错误视图
提供 Public/Private 区域、Admin Dashboard、内部 UI 组件库与变量化 Design System
包含 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 配置,并非开箱即用。演示图片、字体、图标等第三方素材需单独核对许可,域名、托管、数据库等外部服务可能另行收费。
适合你的项目吗?
适用场景
- 需要一个已配置好 lint、测试、安全扫描与 CI/CD 的 Angular 项目起点
- 构建带 Supabase 登录注册、Admin/User 角色与后台仪表盘的应用
- 搭建包含 Public 与 Private 区域、路由守卫与统一错误处理页面的中后台前端
- 需要多语言、SEO 元信息与 PWA 基础配置的 Angular 站点
适合人群
- 熟悉 Angular 与 PNPM 工作流的前端团队
- 需要统一代码规范与提交门禁的中大型项目
- 计划使用 Supabase 作为认证与数据后端的开发者
- 希望从模板起步并自行扩展业务模块的工程团队
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需通过 NVM 安装并切换到模板要求的 Node.js 版本
- 2
执行 corepack enable 后使用 pnpm install --frozen-lockfile 安装依赖,pnpm start 启动
- 3
在项目根目录创建 .env,填写 NG_APP_BACKEND_API_URL、NG_APP_SUPABASE_URL 与 NG_APP_SUPABASE_ANON_KEY
- 4
维护模式切换依赖 GitHub Actions 工作流与服务器 SSH、.htaccess 配置,需按部署环境自行准备
- 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 原文
https://github.com/EmmanuelLefevre/AngularTemplate/blob/main/LICENSEhttps://github.com/EmmanuelLefevre/AngularTemplate/blob/main/README.mdPour cela le script se connecte en **SSH** pour piloter le fichier `maintenance.enable` intercepté par le `.htaccess`.
README 原文
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"/>
<img src="https://img.shields.io/github/last-commit/EmmanuelLefevre/AngularTemplate" alt="Last Commit"/>
<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> <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> <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> <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. 📈📈📈

## 📚 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
```
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

QuickStart
Matech QuickStart is an ASP.NET Core / Angular / Admin starter project featuring SOLID architecture, advanced …
Angular · 后台

angular-community-website-template
The website template for Angular communities in Africa.
Angular · 启动器

matdash-angular-free
MatDash Angular Free is a modern, responsive, and developer-friendly admin dashboard template built with Angul…
Angular · 后台

claude-starter
.NET 10 + Angular 22 starter template. Dapper/Npgsql on PostgreSQL, DbUp migrations, cookie auth with optional…
Angular · 后台

react-starter-kit
Modern React starter kit with Bun, TypeScript, Tailwind CSS, tRPC, Stripe, and Cloudflare Workers. Production-…
Vite · SaaS

vitesse
🏕 Opinionated Vite + Vue Starter Template
Vue · 启动器
