Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
46 lines
1.6 KiB
JavaScript
46 lines
1.6 KiB
JavaScript
/** @type {import('lighthouse').Config} */
|
|
module.exports = {
|
|
ci: {
|
|
collect: {
|
|
url: ['http://localhost:3000'],
|
|
numberOfRuns: 3,
|
|
startServerCommand: 'npm run start',
|
|
startServerReadyPattern: 'ready',
|
|
startServerReadyTimeout: 30000,
|
|
},
|
|
assert: {
|
|
assertions: {
|
|
'categories:performance': ['error', { minScore: 1 }],
|
|
'categories:accessibility': ['error', { minScore: 1 }],
|
|
'categories:best-practices': ['error', { minScore: 1 }],
|
|
'categories:seo': ['error', { minScore: 1 }],
|
|
// Core Web Vitals
|
|
'first-contentful-paint': ['error', { maxNumericValue: 1800 }],
|
|
'largest-contentful-paint': ['error', { maxNumericValue: 2500 }],
|
|
'cumulative-layout-shift': ['error', { maxNumericValue: 0.1 }],
|
|
'total-blocking-time': ['error', { maxNumericValue: 200 }],
|
|
'speed-index': ['error', { maxNumericValue: 3400 }],
|
|
// Performance metrics
|
|
'interactive': ['error', { maxNumericValue: 3800 }],
|
|
'uses-optimized-images': 'error',
|
|
'uses-text-compression': 'error',
|
|
'uses-responsive-images': 'error',
|
|
'modern-image-formats': 'error',
|
|
'offscreen-images': 'error',
|
|
'render-blocking-resources': 'error',
|
|
'unused-css-rules': 'error',
|
|
'unused-javascript': 'error',
|
|
'efficient-animated-content': 'error',
|
|
'preload-lcp-image': 'error',
|
|
'uses-long-cache-ttl': 'error',
|
|
'total-byte-weight': ['error', { maxNumericValue: 1600000 }],
|
|
},
|
|
},
|
|
upload: {
|
|
target: 'temporary-public-storage',
|
|
},
|
|
},
|
|
};
|
|
|
|
|
|
|