diff --git a/packages/compiler-core/src/options.ts b/packages/compiler-core/src/options.ts
index 1de865f42..a4a68e8aa 100644
--- a/packages/compiler-core/src/options.ts
+++ b/packages/compiler-core/src/options.ts
@@ -235,6 +235,12 @@ export interface TransformOptions
* @default null
*/
transformHoist?: HoistTransform | null
+ /**
+ * Allow ``, {
+ allowSideEffectTags: true,
+ })
+ expect(code).toMatch('script')
+ })
+
it('should ignore style', () => {
let err: CompilerError | undefined
const { code } = compile(``, {
@@ -24,4 +31,11 @@ describe('compiler: ignore side effect tags', () => {
expect(err).toBeDefined()
expect(err!.message).toMatch(`Tags with side effect`)
})
+
+ it('should allow style when allowSideEffectTags is true', () => {
+ const { code } = compile(``, {
+ allowSideEffectTags: true,
+ })
+ expect(code).toMatch('style')
+ })
})
diff --git a/packages/compiler-dom/src/transforms/ignoreSideEffectTags.ts b/packages/compiler-dom/src/transforms/ignoreSideEffectTags.ts
index 81dc49849..7c4882266 100644
--- a/packages/compiler-dom/src/transforms/ignoreSideEffectTags.ts
+++ b/packages/compiler-dom/src/transforms/ignoreSideEffectTags.ts
@@ -5,7 +5,8 @@ export const ignoreSideEffectTags: NodeTransform = (node, context) => {
if (
node.type === NodeTypes.ELEMENT &&
node.tagType === ElementTypes.ELEMENT &&
- (node.tag === 'script' || node.tag === 'style')
+ (node.tag === 'script' || node.tag === 'style') &&
+ !context.allowSideEffectTags
) {
__DEV__ &&
context.onError(