diff --git a/src/utils.ts b/src/utils.ts index c2839a3..81fb90b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -301,7 +301,7 @@ export function buildOutputChunkWithCssInjectionCode( cssInjectionCode: string, topExecutionPriorityFlag: boolean ): string { - const appCode = jsAssetCode.replace(/\/\*.*empty css.*\*\//, ''); + const appCode = jsAssetCode.replaceAll(/\/\*\s*empty css\s*\*\//g, ''); jsAssetCode = topExecutionPriorityFlag ? '' : appCode; jsAssetCode += cssInjectionCode; jsAssetCode += !topExecutionPriorityFlag ? '' : appCode; diff --git a/test/utils.spec.ts b/test/utils.spec.ts index 265744a..7ffa544 100644 --- a/test/utils.spec.ts +++ b/test/utils.spec.ts @@ -523,6 +523,14 @@ describe('utils', () => { expect(bundle['a.js'].code).toEqual('a'); }); + + it('should remove occurrences of /* empty css */ from the bundled code', async () => { + bundle['a.js'] = generateJsChunk('a', ['a.css']); + bundle['a.js'].code = `/* empty css */${bundle['a.js'].code}/* empty css */`; + await relativeCssInjection(bundle, buildJsCssMap(bundle), buildCssCodeMock, true); + + expect(bundle['a.js'].code).toEqual('aa'); + }); }); describe('globalCssInjection', () => { @@ -550,6 +558,16 @@ describe('utils', () => { expect(bundle['a.js'].code).toEqual('abca'); }); + it('should remove occurrences of /* empty css */ from the bundled code', async () => { + const cssAssets = ['a.css', 'b.css', 'c.css']; + bundle['a.js'] = generateJsChunk('a', cssAssets, true); + bundle['a.js'].code = `/* empty css */${bundle['a.js'].code}/* empty css */`; + + await globalCssInjection(bundle, cssAssets, buildCssCodeMock, undefined, true); + + expect(bundle['a.js'].code).toEqual('abca'); + }); + it('should inject all css should throw if no entry is available', async () => { const cssAssets = ['a.css', 'b.css', 'c.css']; bundle['a.js'] = generateJsChunk('a', cssAssets, false);