Skip to content

Unable to import .svelte files with ?raw suffix #87

Closed
@mattjennings

Description

@mattjennings

Describe the bug

When importing a Svelte file using the ?raw suffix, the following error occurs:

[vite] Internal server error: Expecting Unicode escape sequence \uXXXX
  Plugin: vite-plugin-svelte
  File: /Users/mattjennings/Desktop/sv/src/lib/HelloWorld.svelte?raw
  1: export default "<script>\n  let name = \"world\";\n</script>\n\nhello {name}\n"

Reproduction

https://github.com/mattjennings/vite-svelte-raw-bug

Notice in src/main.js:

import Counter from "./lib/Counter.svelte?raw";

console.log(Counter);

this will cause the error to throw.

If you remove svelte() from vite.config.js and restart, it properly logs the file contents in the console

Logs

vite:vite-plugin-svelte resolveId {
  id: '/src/lib/Counter.svelte?raw',
  filename: '/src/lib/Counter.svelte',
  normalizedFilename: '/src/lib/Counter.svelte',
  cssId: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?svelte&type=style&lang.css',
  query: [Object: null prototype] { raw: '' },
  timestamp: 1625800597163,
  ssr: false
} +2ms
  vite:vite-plugin-svelte resolveId {
  id: '/src/lib/Counter.svelte?raw',
  filename: '/src/lib/Counter.svelte',
  normalizedFilename: '/src/lib/Counter.svelte',
  cssId: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?svelte&type=style&lang.css',
  query: [Object: null prototype] { raw: '' },
  timestamp: 1625800597164,
  ssr: false
} +0ms
  vite:vite-plugin-svelte load {
  id: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?raw',
  filename: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte',
  normalizedFilename: '/src/lib/Counter.svelte',
  cssId: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?svelte&type=style&lang.css',
  query: [Object: null prototype] { raw: '' },
  timestamp: 1625800597164,
  ssr: false
} +1ms
  vite:load 1ms   [plugin] /src/lib/Counter.svelte?raw +3ms
  vite:vite-plugin-svelte resolveId {
  id: '/src/lib/Counter.svelte?raw',
  filename: '/src/lib/Counter.svelte',
  normalizedFilename: '/src/lib/Counter.svelte',
  cssId: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?svelte&type=style&lang.css',
  query: [Object: null prototype] { raw: '' },
  timestamp: 1625800597166,
  ssr: false
} +1ms
  vite:vite-plugin-svelte transform {
  id: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?raw',
  filename: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte',
  normalizedFilename: '/src/lib/Counter.svelte',
  cssId: '/Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?svelte&type=style&lang.css',
  query: [Object: null prototype] { raw: '' },
  timestamp: 1625800597166,
  ssr: false
} +0ms
  vite:vite-plugin-svelte setting cssHash s-lXDMeZ-gXAhl for /src/lib/Counter.svelte +0ms
10:16:37 p.m. [vite] Internal server error: Expecting Unicode escape sequence \uXXXX
  Plugin: vite-plugin-svelte
  File: /Users/mattjennings/Desktop/sv/src/lib/Counter.svelte?raw
  1: export default "<script>\n  let count = 0;\n  const increment = () => {\n    count += 1;\n  };\n</script>\n\n<button on:click={increment}>\n  Clicks: {count}\n</button>\n\n<style>\n  button {\n    font-family: inherit;\n    font-size: inherit;\n    padding: 1em 2em;\n    color: #ff3e00;\n    background-color: rgba(255, 62, 0, 0.1);\n    border-radius: 2em;\n    border: 2px solid rgba(255, 62, 0, 0);\n    outline: none;\n    width: 200px;\n    font-variant-numeric: tabular-nums;\n    cursor: pointer;\n  }\n\n  button:focus {\n    border: 2px solid #ff3e00;\n  }\n\n  button:active {\n    background-color: rgba(255, 62, 0, 0.2);\n  }\n *{}</style>\n"
                              ^
      at error (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:16752:19)
      at Parser$1.error (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:16828:9)
      at Parser$1.acorn_error (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:16822:14)
      at Object.read_script [as read] (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:7495:16)
      at tag (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:15881:33)
      at new Parser$1 (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:16787:21)
      at parse$3 (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:16919:20)
      at compile (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/svelte@3.38.3/node_modules/svelte/compiler.mjs:30055:17)
      at compileSvelte (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/@sveltejs+vite-plugin-svelte@1.0.0-next.11_svelte@3.38.3+vite@2.4.1/node_modules/@sveltejs/vite-plugin-svelte/dist/index.js:264:20)
      at async TransformContext.transform (file:///Users/mattjennings/Desktop/sv/node_modules/.pnpm/@sveltejs+vite-plugin-svelte@1.0.0-next.11_svelte@3.38.3+vite@2.4.1/node_modules/@sveltejs/vite-plugin-svelte/dist/index.js:873:27)
  vite:time 38ms  /src/lib/Counter.svelte?raw +38ms
  vite:time 3ms   /favicon.ico +11ms

System Info

System:
    OS: macOS 11.4
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 834.79 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.3.0 - ~/.nvm/versions/node/v16.3.0/bin/node
    npm: 7.15.1 - ~/.nvm/versions/node/v16.3.0/bin/npm
  Browsers:
    Brave Browser: 91.1.26.74
    Chrome: 91.0.4472.114
    Safari: 14.1.1
    Safari Technology Preview: 15.0
  npmPackages:
    @sveltejs/vite-plugin-svelte: ^1.0.0-next.11 => 1.0.0-next.11 
    svelte: ^3.37.0 => 3.38.3 
    vite: ^2.4.0 => 2.4.1

Severity

annoyance

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions