/** * 从 Font Awesome SCSS 变量生成图标 Unicode 映射表。 * 升级 @fortawesome/fontawesome-free 后执行: node scripts/gen-fa-icons.js */ const fs = require('fs') const path = require('path') const scssPath = path.join( __dirname, '../node_modules/@fortawesome/fontawesome-free/scss/_variables.scss' ) const outputPath = path.join(__dirname, '../utils/fa-icons.js') const source = fs.readFileSync(scssPath, 'utf8') const icons = {} for (const match of source.matchAll(/\$var-([a-z0-9-]+):\s*\\([a-f0-9]+);/gi)) { const [, name, hex] = match icons[name] = String.fromCharCode(parseInt(hex, 16)) } const content = `export const FA_ICONS = ${JSON.stringify(icons, null, 2)}\n` fs.writeFileSync(outputPath, content, 'utf8') console.log(`Generated ${Object.keys(icons).length} icons -> utils/fa-icons.js`)