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

"Unexpected token" error when interpolating a template string that contains `<script>` tags #563

Open sfriedel opened 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?

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' } }; ```
{@html `<script>${'console.log("test")'}</script>`}

What did you expect to happen?

no error

What actually happened?

[1:18]: Parsing error: Unexpected token {

Link to GitHub Repo with Minimal Reproducible Example

https://sveltejs.github.io/eslint-plugin-svelte/playground/#eJyrVkrOT0lVslKqdsgoyc1RSLApTi7KLCixU6lWT87PK87PSdXLyU/XiFEqSS0uiVHSVK+10YcqSahVqgUAz2EWSg==

Additional comments

The component compiles without error in the svelte playground and produces the expected console.log when run locally (though not in the playground for some reason).

ota-meshi commented 1 year ago

Thank you for posting the issue. However that is a parser issue. Check out https://github.com/sveltejs/svelte-eslint-parser/issues/346 and workarounds.