diff --git a/playground/App.vue b/playground/App.vue
index 93bddf7..2472c47 100644
--- a/playground/App.vue
+++ b/playground/App.vue
@@ -3,6 +3,7 @@ import TestMultiplySrcImport from './src-import/TestMultiplySrcImport.vue'
import TestBlockSrcImport from './src-import/TestBlockSrcImport.vue'
import TestScopedCss from './css/TestScopedCss.vue'
import TestCssModules from './css/TestCssModules.vue'
+import TestEmptyCss from './css/TestEmptyCss.vue'
import TestCustomBlock from './custom/TestCustomBlock.vue'
import TestHmr from './hmr/TestHmr.vue'
import TestAssets from './test-assets/TestAssets.vue'
@@ -18,6 +19,7 @@ export default {
TestScopedCss,
TestBlockSrcImport,
TestCssModules,
+ TestEmptyCss,
TestCustomBlock,
TestHmr,
TestAssets,
@@ -37,6 +39,7 @@ export default {
+
diff --git a/playground/css/TestEmptyCss.vue b/playground/css/TestEmptyCss.vue
new file mode 100644
index 0000000..025d632
--- /dev/null
+++ b/playground/css/TestEmptyCss.vue
@@ -0,0 +1,11 @@
+
+
+
Empty CSS
+
+ <style>: empty style
+
+
+
+
+
+
diff --git a/src/main.ts b/src/main.ts
index 6db1ddf..edc08b4 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -283,6 +283,8 @@ async function genStyleRequest(
let stylesCode = ''
for (let i = 0; i < descriptor.styles.length; i++) {
const style = descriptor.styles[i]
+ if (!style.src && (!style.content || !style.content.trim()))
+ continue
const src = style.src || filename
const attrsQuery = attrsToQuery(style.attrs, 'css')
const srcQuery = style.src ? '&src' : ''
diff --git a/test/e2e.spec.ts b/test/e2e.spec.ts
index dce9e7f..0e519ce 100644
--- a/test/e2e.spec.ts
+++ b/test/e2e.spec.ts
@@ -100,6 +100,17 @@ export function declareTests(isBuild: boolean) {
}
})
+ test('SFC empty style', async() => {
+ const el = await page.$$eval('style', (elements) => {
+ return elements.map((e) => {
+ return e.innerHTML?.trim()
+ }).filter((e) => {
+ return !e
+ })
+ })
+ expect(el).toHaveLength(0)
+ })
+
test('SFC ', async() => {
expect(await getText('.custom-block')).toMatch('Custom Block')
expect(await getText('.custom-block-lang')).toMatch('Custom Block')