Skip to content

Svelte v5 with no emitCss specified throws error for missing .css file #216

Closed
@nolanlawson

Description

@nolanlawson

If you don't define emitCss in the config passed to rollup-plugin-svelte, and you're using svelte@5.0.0-next.1, and your component is missing a .css file, then an error is thrown:

[!] (plugin svelte) TypeError: Cannot read properties of null (reading 'code')
Hello.svelte
    at Object.transform (/workspace/rollup-demo/node_modules/rollup-plugin-svelte/index.js:154:32)
    at /workspace/rollup-demo/node_modules/rollup/dist/shared/rollup.js:1008:40

The error is thrown from this line:

if (emitCss && compiled.css.code) {

This same error does not occur with Svelte v4.

Here is a minimal repro.

You can repro by doing:

git clone https://gist.github.com/nolanlawson/91dac64f8f50aa9d61bb23e23d077ddf repro
cd repro
npm install --legacy-peer-deps
npx rollup -c

Node and npm versions:

$ node --version
v20.9.0
$ npm --version
9.9.1

As a workaround, you can set emitCss: false in the config.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions