Rocky_Mountain_Vending/.lighthouserc.js

43 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",
},
},
}