mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-28 10:31:20 -08:00
feat: update changelog with Parcel to Vite refactor
feat: add danmuku plugin documentation and i18n setup guide - Created a new documentation file for the danmuku plugin with code examples. - Added a comprehensive guide for language settings (i18n) including default languages, importing languages, adding new languages, and modifying existing languages. - Included code snippets for initializing the Artplayer with different language settings. Add internationalization support for multiple languages in Artplayer - Introduced Arabic (ar), Czech (cs), Spanish (es), Persian (fa), French (fr), Indonesian (id), Polish (pl), Russian (ru), Turkish (tr), Vietnamese (vi), and Traditional Chinese (zh-tw) translations. - Created corresponding JavaScript and ES module files for each language containing translated strings for player controls and settings. - Added a new documentation file for language settings in the project. feat: add initial implementation of start option page with interactive code execution buttons feat: add danmuku plugin documentation and i18n setup guide - Created a new documentation file for the danmuku plugin, providing code examples for usage. - Added a comprehensive guide for language settings, including default languages, importing languages, adding new languages, and modifying existing languages. - Included code snippets for initializing the Artplayer with different language settings and importing language files. refactor: update danmuku worker implementation and remove unused i18n files - Changed the way the Danmuku class creates a Web Worker by using a worker loader instead of creating a blob. - Removed Arabic, Czech, Spanish, Persian, French, Indonesian, Polish, Russian, Turkish, Vietnamese, and Traditional Chinese i18n files as they are no longer needed. - Updated the Vite build configuration to disable banners for inline workers and added a plugin to remove worker banners from generated code. feat: add danmuku plugin and i18n setup documentation - Created a new documentation file for the danmuku plugin, providing code examples for usage. - Added a new documentation file for language settings (i18n), detailing how to set default languages, import languages, and add new languages. - Included code snippets for initializing the Artplayer with different language settings and examples for modifying existing languages. feat: add danmuku plugin and i18n setup documentation - Created a new documentation file for the danmuku plugin with code examples. - Added a new documentation file for language settings (i18n) including import instructions and examples for setting default and custom languages. - Updated the i18n documentation to include details on adding and modifying languages. feat: add danmuku plugin and i18n setup documentation - Created a new JavaScript file for the danmuku plugin documentation with multiple code execution buttons. - Added a new JavaScript file for i18n (internationalization) setup documentation, including instructions for language settings, importing languages, and modifying language options. - Included examples for setting default languages and adding new languages in the i18n documentation. Refactor code structure for improved readability and maintainability
This commit is contained in:
1 parent
ddb78cf850
commit
699bf09577
397 files changed
+99776
-8638
No files matched your search
+18
-50
@@ -1,9 +1,10 @@
|
||||
import fs from 'node:fs'
|
||||
import path from 'node:path'
|
||||
import process from 'node:process'
|
||||
import { Parcel } from '@parcel/core'
|
||||
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')
|
||||
@@ -21,63 +22,30 @@ async function buildI18n() {
|
||||
}
|
||||
fs.mkdirSync(distDir, { recursive: true })
|
||||
|
||||
const distJs = path.join(distDir, 'cjs')
|
||||
const bundlerJs = new Parcel({
|
||||
entries,
|
||||
defaultConfig: '@parcel/config-default',
|
||||
mode: 'production',
|
||||
defaultTargetOptions: {
|
||||
distDir: distJs,
|
||||
outputFormat: 'global',
|
||||
sourceMaps: false,
|
||||
isLibrary: true,
|
||||
engines: { browsers: ['last 1 Chrome version'] },
|
||||
},
|
||||
env: { NODE_ENV: 'production' },
|
||||
})
|
||||
await bundlerJs.run()
|
||||
console.log('✅ Built i18n global (.js)')
|
||||
for (const entry of entries) {
|
||||
const baseName = path.basename(entry, '.js')
|
||||
const globalName = `artplayerI18n${toPascalCase(baseName)}`
|
||||
|
||||
const distMjs = path.join(distDir, 'esm')
|
||||
const bundlerMjs = new Parcel({
|
||||
entries,
|
||||
defaultConfig: '@parcel/config-default',
|
||||
mode: 'production',
|
||||
defaultTargetOptions: {
|
||||
context: 'browser',
|
||||
distDir: distMjs,
|
||||
outputFormat: 'esmodule',
|
||||
sourceMaps: false,
|
||||
isLibrary: true,
|
||||
engines: { browsers: ['last 1 Chrome version'] },
|
||||
},
|
||||
env: { NODE_ENV: 'production' },
|
||||
})
|
||||
const { bundleGraph } = await bundlerMjs.run()
|
||||
const bundles = bundleGraph.getBundles()
|
||||
for (const bundle of bundles) {
|
||||
if (bundle.type === 'js') {
|
||||
const oldPath = bundle.filePath
|
||||
const newPath = oldPath.replace(/\.js$/, '.mjs')
|
||||
fs.renameSync(oldPath, newPath)
|
||||
// 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 esm (.mjs)')
|
||||
|
||||
for (const f of fs.readdirSync(distJs)) {
|
||||
fs.renameSync(path.join(distJs, f), path.join(distDir, f))
|
||||
console.log(`✅ Built i18n: ${baseName}`)
|
||||
}
|
||||
for (const f of fs.readdirSync(distMjs)) {
|
||||
fs.renameSync(path.join(distMjs, f), path.join(distDir, f))
|
||||
}
|
||||
fs.rmSync(distJs, { recursive: true, force: true })
|
||||
fs.rmSync(distMjs, { recursive: true, force: true })
|
||||
|
||||
await cpy(distDir, compiledPath)
|
||||
console.log('✨ Finished building i18n with both .js and .mjs')
|
||||
console.log('✨ Finished building i18n')
|
||||
}
|
||||
|
||||
buildI18n().catch((err) => {
|
||||
console.error('❌ Build i18n failed', err)
|
||||
console.error('❌ Build i18n failed:', err)
|
||||
process.exitCode = 1
|
||||
})
|
||||
Reference in new issue
Block a user