veza/veza-desktop/lighthouse.config.js

56 lines
1.8 KiB
JavaScript

/**
* Configuration Lighthouse pour Veza V5 Ultra
* Objectif: Score 100/100 sur tous les critères
*/
module.exports = {
ci: {
collect: {
url: ['http://localhost:5173'],
numberOfRuns: 3,
settings: {
chromeFlags: '--no-sandbox --disable-dev-shm-usage',
preset: 'desktop',
},
},
assert: {
assertions: {
'categories:performance': ['error', { minScore: 1.0 }],
'categories:accessibility': ['error', { minScore: 1.0 }],
'categories:best-practices': ['error', { minScore: 1.0 }],
'categories:seo': ['error', { minScore: 1.0 }],
'categories:pwa': ['error', { minScore: 1.0 }],
// Performance spécifique
'first-contentful-paint': ['error', { maxNumericValue: 800 }],
'largest-contentful-paint': ['error', { maxNumericValue: 1500 }],
'speed-index': ['error', { maxNumericValue: 1000 }],
'cumulative-layout-shift': ['error', { maxNumericValue: 0.1 }],
'total-blocking-time': ['error', { maxNumericValue: 200 }],
'interactive': ['error', { maxNumericValue: 1500 }],
// Bundle size
'unused-javascript': ['warn', { maxLength: 0 }],
'unused-css-rules': ['warn', { maxLength: 0 }],
'render-blocking-resources': ['error', { maxLength: 0 }],
// PWA
'service-worker': 'error',
'viewport': 'error',
'apple-touch-icon': 'error',
'maskable-icon': 'error',
'splash-screen': 'error',
'themed-omnibox': 'error',
'content-width': 'error',
'image-aspect-ratio': 'error',
'installable-manifest': 'error',
'pwa-cross-browser': 'error',
'pwa-page-transitions': 'error',
'pwa-each-page-has-url': 'error',
},
},
upload: {
target: 'temporary-public-storage',
},
},
};