diff --git a/crates/oxc_linter/src/loader/partial_loader/vue.rs b/crates/oxc_linter/src/loader/partial_loader/vue.rs index 0a6796284c8e0..0a587b8459254 100644 --- a/crates/oxc_linter/src/loader/partial_loader/vue.rs +++ b/crates/oxc_linter/src/loader/partial_loader/vue.rs @@ -33,12 +33,16 @@ impl<'a> VuePartialLoader<'a> { fn parse_script(&self, pointer: &mut usize) -> Option> { let script_start_finder = Finder::new(SCRIPT_START); - let script_end_finder = Finder::new(SCRIPT_END); // find opening "']) { + return self.parse_script(pointer); + } + // find closing ">" let offset = find_script_closing_angle(self.source_text, *pointer)?; @@ -51,6 +55,7 @@ impl<'a> VuePartialLoader<'a> { let js_start = *pointer; // find "" + let script_end_finder = Finder::new(SCRIPT_END); let offset = script_end_finder.find(self.source_text[*pointer..].as_bytes())?; let js_end = *pointer + offset; *pointer += offset + SCRIPT_END.len(); @@ -236,4 +241,15 @@ mod test { .trim() ); } + + #[test] + fn test_script_in_template() { + let source_text = r" + + + "; + let sources = VuePartialLoader::new(source_text).parse(); + assert_eq!(sources.len(), 1); + assert_eq!(sources[0].source_text, "a"); + } }