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(