Files

52 lines
1.4 KiB
JavaScript

import fs from 'node:fs'
import path from 'node:path'
import process from 'node:process'
import cpy from 'cpy'
import { glob } from 'glob'
import { build as viteBuild } from 'vite'
import { getViteBuildConfig, toPascalCase } from './utils.js'
const basePath = 'packages/artplayer'
const i18nSrcDir = path.join(basePath, 'src/i18n')
const distDir = path.join(basePath, 'dist/i18n')
const compiledPath = path.resolve('docs/compiled/i18n')
const entries = glob.sync('*.js', {
cwd: i18nSrcDir,
ignore: ['index.js', 'zh-cn.js'],
}).map(f => path.join(i18nSrcDir, f))
async function buildI18n() {
if (fs.existsSync(distDir)) {
fs.rmSync(distDir, { recursive: true, force: true })
}
fs.mkdirSync(distDir, { recursive: true })
for (const entry of entries) {
const baseName = path.basename(entry, '.js')
const globalName = `artplayerI18n${toPascalCase(baseName)}`
// Build UMD and ESM formats
for (const [format, ext] of [['umd', '.js'], ['es', '.mjs']]) {
const config = getViteBuildConfig({
entry,
outDir: distDir,
name: globalName,
format,
fileName: `${baseName}${ext}`,
})
await viteBuild(config)
}
console.log(`✅ Built i18n: ${baseName}`)
}
await cpy(path.join(distDir, '*'), compiledPath, { flat: true })
console.log('✨ Finished building i18n')
}
buildI18n().catch((err) => {
console.error('❌ Build i18n failed:', err)
process.exitCode = 1
})