fix: avoid vite optional stream import resolution

This commit is contained in:
hibna
2026-02-13 05:16:02 +03:00
parent ab1135ef74
commit 69d7706967
6 changed files with 32 additions and 10 deletions
+12
View File
@@ -7,6 +7,18 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
## [Unreleased]
## [3.0.1] - 2026-02-13
### Changed
- Updated `baseline-browser-mapping` to the latest version to refresh Baseline data.
### Fixed
- Fixed Vite import-analysis failures for optional stream libraries by switching to runtime dynamic imports with `@vite-ignore` in `hlsLoader`, `rtmpLoader`, and `mpegtsLoader`.
- Preserved CDN fallback behavior when `hls.js`, `flv.js`, or `mpegts.js` are not installed locally.
- Ensured examples build flow remains stable with optional streaming dependencies.
## [3.0.0] - 2026-02-13
### Added
+6 -3
View File
@@ -1,12 +1,12 @@
{
"name": "@source/player",
"version": "3.0.0",
"version": "3.0.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@source/player",
"version": "3.0.0",
"version": "3.0.1",
"license": "MIT",
"devDependencies": {
"@eslint/js": "^9.38.0",
@@ -19,6 +19,7 @@
"@typescript-eslint/parser": "^8.46.2",
"@vitejs/plugin-react": "^5.1.0",
"@vitest/ui": "^4.0.4",
"baseline-browser-mapping": "^2.9.19",
"eslint": "^9.38.0",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
@@ -2618,7 +2619,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
"version": "2.8.23",
"version": "2.9.19",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
"integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
"dev": true,
"license": "Apache-2.0",
"bin": {
+2 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@source/player",
"version": "3.0.0",
"version": "3.0.1",
"description": "Modern, feature-rich video player library for React",
"type": "module",
"main": "./dist/video-player.umd.cjs",
@@ -44,6 +44,7 @@
"@typescript-eslint/parser": "^8.46.2",
"@vitejs/plugin-react": "^5.1.0",
"@vitest/ui": "^4.0.4",
"baseline-browser-mapping": "^2.9.19",
"eslint": "^9.38.0",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
+4 -2
View File
@@ -50,9 +50,11 @@ export const loadHls = async (): Promise<HlsConstructor> => {
try {
logger.log('[HLS Loader] Attempting to load from npm package...')
// Try loading from npm package first
const hlsModule = await import('hls.js')
const hlsModuleName = 'hls.js'
const hlsModule = await import(/* @vite-ignore */ hlsModuleName)
const moduleWithDefault = hlsModule as { default?: HlsConstructor }
logger.log('[HLS Loader] Successfully loaded from npm package')
return hlsModule.default
return moduleWithDefault.default ?? (hlsModule as unknown as HlsConstructor)
} catch (npmError) {
logger.warn('[HLS Loader] Failed to load from npm, trying CDN...', npmError)
try {
+4 -2
View File
@@ -77,8 +77,10 @@ export const loadMpegts = async (): Promise<MpegtsStatic> => {
loadingPromise = (async () => {
try {
logger.log('[MPEG-TS Loader] Attempting to load from npm package...')
const module = await import('mpegts.js')
mpegtsInstance = module.default || module
const mpegtsModuleName = 'mpegts.js'
const mpegtsModule = await import(/* @vite-ignore */ mpegtsModuleName)
const moduleWithDefault = mpegtsModule as { default?: MpegtsStatic }
mpegtsInstance = moduleWithDefault.default ?? (mpegtsModule as unknown as MpegtsStatic)
logger.log('[MPEG-TS Loader] Successfully loaded from npm package')
return mpegtsInstance!
} catch (npmError) {
+4 -2
View File
@@ -46,8 +46,10 @@ const loadFlvjsFromCDN = async (): Promise<FlvjsStatic> => {
export const loadFlvjs = async (): Promise<FlvjsStatic> => {
try {
// Try loading from NPM package first
const flvModule = await import('flv.js')
return flvModule.default || flvModule
const flvModuleName = 'flv.js'
const flvModule = await import(/* @vite-ignore */ flvModuleName)
const moduleWithDefault = flvModule as { default?: FlvjsStatic }
return moduleWithDefault.default ?? (flvModule as unknown as FlvjsStatic)
} catch (npmError) {
logger.warn('flv.js NPM package not available, loading from CDN...', npmError)