rollup-plugin-postcss-lit icon indicating copy to clipboard operation
rollup-plugin-postcss-lit copied to clipboard

Build breaks if you there is a default export with a template literal

Open Artur- opened this issue 2 years ago • 3 comments

const foo = `hello`;
export default foo;

If this gets passed through the plugin, it breaks with

error during build:
TypeError: Cannot read properties of undefined (reading 'replace')
    at escape (/.../vite.config.ts:605:27)
    at /.../vite.config.ts:636:53
    at walk (/.../node_modules/.pnpm/[email protected]/node_modules/dash-ast/index.js:69:28)
    at walkArray (/.../node_modules/.pnpm/[email protected]/node_modules/dash-ast/index.js:74:27)

If you change

const foo = `hello`;

to

const foo = "hello";

then it works.

The problem is because of https://github.com/umbopepato/rollup-plugin-postcss-lit/blob/main/index.ts#L68 assumes a default export initialized node has a .value which a template literal does not have

Artur- avatar Feb 16 '23 13:02 Artur-

Hey @Artur-! Version v2.1.0 is out with improved support for template literals. Please let me know if it works

umbopepato avatar Jun 21 '23 16:06 umbopepato

Thanks but I don't think we can remove our custom version and upgrade because of #53/#54

Artur- avatar Jun 27 '23 13:06 Artur-

I see. I was looking for a way to conciliate your PR with template literals support (it took a bit of experimentation with the different AST nodes). I think I found a way which seems to work but to be honest I haven't been able to reproduce your issue with composed URLs. Would you mind having a go with the Artur--vite3-support branch and let me know if it works?

Thanks for the patience!

umbopepato avatar Jun 28 '23 08:06 umbopepato