umbopepato / rollup-plugin-postcss-lit

Rollup plugin to load PostCSSed stylesheets in LitElement components
MIT License
34 stars 6 forks source link

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

Open Artur- opened 1 year ago

Artur- commented 1 year ago
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/dash-ast@1.0.0/node_modules/dash-ast/index.js:69:28)
    at walkArray (/.../node_modules/.pnpm/dash-ast@1.0.0/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

umbopepato commented 1 year ago

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

Artur- commented 1 year ago

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

umbopepato commented 1 year ago

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!