Treeshaking bug: Import module without export
SRoeffaers opened this issue · 6 comments
When I for examle do this: import 'can/es/can-stache-converters';
It doesn't work when I build it with tree shaking enabled.
When I disable tree shaking, it does work.
I think it can't handle module imports without explicit named imports
You shouldn’t import this file if you are using tree-shaking. Just import {stashConverters} from “can”
There's probably still a bug here worth looking into though.
But I won't be doing anything with 'stashConverters'..
It's just needed in the stache-files.
My linter will mark it as an unused variable..
@Kleppo do this:
import { stache, stacheConverters } from 'can';
stache.addConverter(stacheConverters);
Ah thx, good idea! :-)
I think I've encountered this as well.
My workaround was to, in the context of this example, add to package.json
:
"dependencies": {
---snip---
"can-stache-converters": "*",
---snip---
}
I think this tells steal to include that module, so it doesn't get thrown away during tree shake, but I'm not really sure. The "*"
means "any" version, so whatever version of that package included with can
. Here are the modules I'm doing this for to avoid the errors that would otherwise appear:
"can-connect": "*",
"can-event-dom-enter": "*",
"can-stache-route-helpers": "*",
Is this actually a solution? Is there a negative to doing this?