sveltejs / eslint-plugin-svelte

ESLint plugin for Svelte using AST
https://sveltejs.github.io/eslint-plugin-svelte/
MIT License
290 stars 33 forks source link

Parsing error when `</script>` is present in a string literal of a component script #562

Closed sfriedel closed 1 year ago

sfriedel commented 1 year ago

Before You File a Bug Report Please Confirm You Have Done The Following...

What version of ESLint are you using?

8.47.0

What version of eslint-plugin-svelte are you using?

2.32.4

What did you do?

When a string literal in a svelte component script contains "" the eslint plugin produces a parser error.

Configuration ``` module.exports = { root: true, extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:svelte/recommended', 'prettier' ], parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], parserOptions: { sourceType: 'module', ecmaVersion: 2020, extraFileExtensions: ['.svelte'] }, env: { browser: true, es2017: true, node: true }, overrides: [ { files: ['*.svelte'], parser: 'svelte-eslint-parser', parserOptions: { parser: '@typescript-eslint/parser' } } ], globals: { // workaround for lack of $$Generic support in svelte-eslint-parser. // See https://github.com/sveltejs/svelte-eslint-parser/issues/306 $$Generic: 'readonly' } }; ```
<script>
    const src = '</script>'
    console.log(src)
</script>

<h1>Example</h1>

What did you expect to happen?

Not receiving a parser error for a valid svelte component :)

What actually happened?

[4:0]: Parsing error: attempted to close an element that was not open

Link to GitHub Repo with Minimal Reproducible Example

https://sveltejs.github.io/eslint-plugin-svelte/playground/#eJyrVkrOT0lVslKyKU4uyiwosYvJiylJzs8rLlEoLkpWsFVQt9GHyqjDpPJzUvVy8tM1gAo0Y/Lg8kDpPJsMQzvXisTcgpxUG30gOyZPqRYAykAitA==

Additional comments

No response

baseballyama commented 1 year ago

This is Svelte compiler's issue. Not ESLint issue. https://svelte.dev/repl/104b0cb2a8d94476b097f7fc752dbce8?version=4.2.0

sfriedel commented 1 year ago

@baseballyama thanks and sorry for the noise. Apparently this is a known behaviour in svelte that won't be changed.