mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
// 自动获取 src\assets\fonts 路径下的字体文件列表,并替换相关的 SCSS 变量
|
|
|
|
/* eslint-disable no-console */
|
|
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
const assetsPath = path.join(__dirname, '../src/assets')
|
|
const fontVarPath = path.join(assetsPath, 'styles/font.scss')
|
|
const fontsPath = path.join(assetsPath, 'fonts')
|
|
|
|
const scssFontListVar = '$fontList'
|
|
|
|
const replaceSCSSVariable = (names) => {
|
|
fs.readFile(fontVarPath, 'utf-8', (errs, content) => {
|
|
if (errs) {
|
|
console.error(errs)
|
|
process.exit(1)
|
|
}
|
|
const reg = new RegExp(`(\\${scssFontListVar}:\\s*)(.*)(;.*)`, 'g')
|
|
const newContent = content.replace(reg, `$1${names}$3`)
|
|
fs.writeFile(fontVarPath, newContent, errs => {
|
|
if (errs) {
|
|
console.error(errs)
|
|
process.exit(1)
|
|
}
|
|
console.log('自动生成自定义字体列表完成')
|
|
})
|
|
})
|
|
}
|
|
|
|
fs.readdir(fontsPath, { withFileTypes: true }, (errs, files) => {
|
|
if (errs) {
|
|
console.error(errs)
|
|
process.exit(1)
|
|
}
|
|
const woff2Fonts = files.filter(({ name }) => name.endsWith('.woff2'))
|
|
const fontList = woff2Fonts.map(({ name }) => name.replace('.woff2', ''))
|
|
|
|
const names = fontList.reduce((result, name, i) => {
|
|
if (i === 0) return `'${name}'`
|
|
return `${result}, '${name}'`
|
|
}, '')
|
|
replaceSCSSVariable(names)
|
|
})
|