35 lines
941 B
JavaScript
35 lines
941 B
JavaScript
import sharp from 'sharp'
|
|
import fs from 'fs'
|
|
import path from 'path'
|
|
import process from 'process'
|
|
|
|
const sizes = [192, 512]
|
|
const inputFile = 'public/favicon.svg'
|
|
const outputDir = 'public'
|
|
|
|
async function generateIcons() {
|
|
try {
|
|
for (const size of sizes) {
|
|
const outputFile = path.join(outputDir, `pwa-${size}x${size}.png`)
|
|
await sharp(inputFile).resize(size, size).png().toFile(outputFile)
|
|
console.log(`Generated ${outputFile}`)
|
|
}
|
|
|
|
// Generate apple touch icon
|
|
await sharp(inputFile)
|
|
.resize(180, 180)
|
|
.png()
|
|
.toFile(path.join(outputDir, 'apple-touch-icon.png'))
|
|
console.log('Generated apple-touch-icon.png')
|
|
|
|
// Copy favicon.svg to mask-icon.svg
|
|
fs.copyFileSync(inputFile, path.join(outputDir, 'mask-icon.svg'))
|
|
console.log('Generated mask-icon.svg')
|
|
} catch (error) {
|
|
console.error('Error generating icons:', error)
|
|
process.exit(1)
|
|
}
|
|
}
|
|
|
|
generateIcons()
|