Skip to content

Conditional expression in dyanmic import's string literal causes error [plugin:vite:asset-import-meta-url] Unterminated template literal #13205

@daolanfler

Description

@daolanfler

Describe the bug

when conditional expression exists in new URL 's string literal, dev server & build breaks, with this error message [plugin:vite:asset-import-meta-url] Unterminated template literal (1:11)

Reproduction

https://stackblitz.com/edit/vitejs-vite-c6quvn?file=main.js

Steps to reproduce

vite 4.3.1 works fine, 4.3.5 breaks

const bool = false

// const logo = new URL(`./${bool ? `javascript` : "javascript"}.svg`, import.meta.url).href; // works 
const logo = new URL(`./${bool ? "javascript" : "javascript"}.svg`, import.meta.url).href; // doesn't work

toggle comments in above to see the error

System Info

System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 16.14.2 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 7.17.0 - /usr/local/bin/npm
  npmPackages:
    vite: ^4.3.5 => 4.3.5

Used Package Manager

npm

Logs

No response

Validations

Metadata

Metadata

Assignees

No one assigned

    Labels

    p4-importantViolate documented behavior or significantly improves performance (priority)regressionThe issue only appears after a new release

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions