fix: avoid vite optional stream import resolution
This commit is contained in:
@@ -7,6 +7,18 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
|
|||||||
|
|
||||||
## [Unreleased]
|
## [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
|
## [3.0.0] - 2026-02-13
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
Generated
+6
-3
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@source/player",
|
"name": "@source/player",
|
||||||
"version": "3.0.0",
|
"version": "3.0.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@source/player",
|
"name": "@source/player",
|
||||||
"version": "3.0.0",
|
"version": "3.0.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.38.0",
|
"@eslint/js": "^9.38.0",
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
"@typescript-eslint/parser": "^8.46.2",
|
"@typescript-eslint/parser": "^8.46.2",
|
||||||
"@vitejs/plugin-react": "^5.1.0",
|
"@vitejs/plugin-react": "^5.1.0",
|
||||||
"@vitest/ui": "^4.0.4",
|
"@vitest/ui": "^4.0.4",
|
||||||
|
"baseline-browser-mapping": "^2.9.19",
|
||||||
"eslint": "^9.38.0",
|
"eslint": "^9.38.0",
|
||||||
"eslint-plugin-react-hooks": "^7.0.1",
|
"eslint-plugin-react-hooks": "^7.0.1",
|
||||||
"eslint-plugin-react-refresh": "^0.4.24",
|
"eslint-plugin-react-refresh": "^0.4.24",
|
||||||
@@ -2618,7 +2619,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/baseline-browser-mapping": {
|
"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,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
+2
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@source/player",
|
"name": "@source/player",
|
||||||
"version": "3.0.0",
|
"version": "3.0.1",
|
||||||
"description": "Modern, feature-rich video player library for React",
|
"description": "Modern, feature-rich video player library for React",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/video-player.umd.cjs",
|
"main": "./dist/video-player.umd.cjs",
|
||||||
@@ -44,6 +44,7 @@
|
|||||||
"@typescript-eslint/parser": "^8.46.2",
|
"@typescript-eslint/parser": "^8.46.2",
|
||||||
"@vitejs/plugin-react": "^5.1.0",
|
"@vitejs/plugin-react": "^5.1.0",
|
||||||
"@vitest/ui": "^4.0.4",
|
"@vitest/ui": "^4.0.4",
|
||||||
|
"baseline-browser-mapping": "^2.9.19",
|
||||||
"eslint": "^9.38.0",
|
"eslint": "^9.38.0",
|
||||||
"eslint-plugin-react-hooks": "^7.0.1",
|
"eslint-plugin-react-hooks": "^7.0.1",
|
||||||
"eslint-plugin-react-refresh": "^0.4.24",
|
"eslint-plugin-react-refresh": "^0.4.24",
|
||||||
|
|||||||
@@ -50,9 +50,11 @@ export const loadHls = async (): Promise<HlsConstructor> => {
|
|||||||
try {
|
try {
|
||||||
logger.log('[HLS Loader] Attempting to load from npm package...')
|
logger.log('[HLS Loader] Attempting to load from npm package...')
|
||||||
// Try loading from npm package first
|
// 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')
|
logger.log('[HLS Loader] Successfully loaded from npm package')
|
||||||
return hlsModule.default
|
return moduleWithDefault.default ?? (hlsModule as unknown as HlsConstructor)
|
||||||
} catch (npmError) {
|
} catch (npmError) {
|
||||||
logger.warn('[HLS Loader] Failed to load from npm, trying CDN...', npmError)
|
logger.warn('[HLS Loader] Failed to load from npm, trying CDN...', npmError)
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -77,8 +77,10 @@ export const loadMpegts = async (): Promise<MpegtsStatic> => {
|
|||||||
loadingPromise = (async () => {
|
loadingPromise = (async () => {
|
||||||
try {
|
try {
|
||||||
logger.log('[MPEG-TS Loader] Attempting to load from npm package...')
|
logger.log('[MPEG-TS Loader] Attempting to load from npm package...')
|
||||||
const module = await import('mpegts.js')
|
const mpegtsModuleName = 'mpegts.js'
|
||||||
mpegtsInstance = module.default || module
|
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')
|
logger.log('[MPEG-TS Loader] Successfully loaded from npm package')
|
||||||
return mpegtsInstance!
|
return mpegtsInstance!
|
||||||
} catch (npmError) {
|
} catch (npmError) {
|
||||||
|
|||||||
@@ -46,8 +46,10 @@ const loadFlvjsFromCDN = async (): Promise<FlvjsStatic> => {
|
|||||||
export const loadFlvjs = async (): Promise<FlvjsStatic> => {
|
export const loadFlvjs = async (): Promise<FlvjsStatic> => {
|
||||||
try {
|
try {
|
||||||
// Try loading from NPM package first
|
// Try loading from NPM package first
|
||||||
const flvModule = await import('flv.js')
|
const flvModuleName = 'flv.js'
|
||||||
return flvModule.default || flvModule
|
const flvModule = await import(/* @vite-ignore */ flvModuleName)
|
||||||
|
const moduleWithDefault = flvModule as { default?: FlvjsStatic }
|
||||||
|
return moduleWithDefault.default ?? (flvModule as unknown as FlvjsStatic)
|
||||||
} catch (npmError) {
|
} catch (npmError) {
|
||||||
logger.warn('flv.js NPM package not available, loading from CDN...', npmError)
|
logger.warn('flv.js NPM package not available, loading from CDN...', npmError)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user