Closed drgarlic closed 7 months ago
Also getting this error. Mine is a new project with no custom config.
@tabler/icons-solidjs 2.5.0
solid-js 1.6.11
solid-start 0.2.21
So it seems like this error has to do with some combination of: solid-start doing SSR, solid's hyperscript setup, and this package.
It's perhaps not ideal, but if you can render the component only on the client everything seems to work.
What seems to be working for me is:
// ~/components/tabler/icon-chevron-down
import { IconChevronDown } from "@tabler/icons-solidjs";
export default IconChevronDown;
unstable_clientOnly
from solid-start, for example:const IconChevronDown = unstable_clientOnly(() => import("~/components/tabler/icon-chevron-down"));
// snip ...
const SomeComponent = () => {
return (
<div>
<IconChevronDown />
</div>
)
}
The re-export is because it seems like unstable_clientOnly
expects the imported module to define a default export.
Thanks for your research @andrewrosss but yeah like you said it really isn't ideal.
Another alternative for now that works is using tabler icons via unplugin-icons
@gawlk Interesting I didn't know about unplug-icons
. Despite the unstable_clientOnly
work-around, I started getting weird build errors in prod. For now I'm using tabler icons via solid-icons
which is working for me locally and in prod :)
For others (or future me) I wonder if this issue in the solid-start repo is relevant here.
It should probably work when switching to JSX or an InnerHtml based component.
From SolidJs discord
Coder — 01/23/2023 7:25 PM tabler-icons now has support for solidjs https://github.com/tabler/tabler-icons foolswisdom — 01/23/2023 7:26 PM Nice I see it uses hyperscript mode - import h from "solid-js/h";. Anyone know if this is SSR safe? ryansolid — 01/23/2023 7:30 PM It wouldn't be Unless they put guards around it to not server render and not hydrate foolswisdom — 01/23/2023 7:35 PM It needs to use JSX and not use innerHTML prop to be safe, right? ryansolid — 01/23/2023 7:36 PM innerHTML is fine I mean beyond typical concerns with innerHTML Since we don't escape it foolswisdom — 01/23/2023 7:37 PM Oh. I didn't realize it worked server side ryansolid — 01/23/2023 7:52 PM I mean it is a string and create strings.. so it works. On the client we just skip it during hydration.
I just ran into this yesterday. In addition to the client-side error Cannot read properties of undefined (reading 'has')
I'm seeing an error on build:
❯ npm run build
> build
> solid-start build
solid-start build
version 0.2.23
adapter node
solid-start building client...
vite v4.1.4 building for production...
✓ 3533 modules transformed.
Inspect report generated at /Users/knpwrs/Downloads/solid-tabler-bug/.solid/inspect
dist/public/manifest.json 0.79 kB
dist/public/ssr-manifest.json 1.75 kB
dist/public/assets/entry-client-d870915a.css 0.38 kB │ gzip: 0.27 kB
dist/public/assets/_...404_-12c7693a.js 0.56 kB │ gzip: 0.38 kB
dist/public/assets/index-dd423e7f.js 3.35 kB │ gzip: 1.57 kB
dist/public/assets/entry-client-1a6e62f0.js 37.59 kB │ gzip: 14.52 kB
solid-start client built in: 2.184s
solid-start building server...
vite v4.1.4 building SSR bundle for production...
✓ 56 modules transformed.
Inspect report generated at /Users/knpwrs/Downloads/solid-tabler-bug/.solid/inspect
.solid/server/manifest.json 0.18 kB
.solid/server/entry-server.js 55.93 kB
solid-start server built in: 425.981ms
file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:2105
base = Object.assign(new Error(base.message), base);
^
Error [RollupError]: "assign" is not exported by "node_modules/solid-js/web/dist/server.js", imported by "node_modules/solid-js/h/dist/h.js".
at error (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:2105:30)
at Module.error (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:13174:16)
at Module.traceVariable (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:13559:29)
at ModuleScope.findVariable (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:12061:39)
at Identifier.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:7933:40)
at Property.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:5726:23)
at ObjectExpression.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:5722:28)
at CallExpression.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:5722:28)
at CallExpression.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:9470:15)
at VariableDeclarator.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:5726:23)
at VariableDeclaration.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:5722:28)
at Program.bind (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:5722:28)
at Module.bindReferences (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:13170:18)
at Graph.sortModules (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:24505:20)
at Graph.build (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:24389:14)
at async file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:25406:13
at async catchUnfinishedHookActions (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:24559:20)
at async rollupInternal (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/node_modules/rollup/dist/es/shared/node-entry.js:25401:5)
at async Object.build (file:///Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/index.js:38:22) {
binding: 'assign',
code: 'MISSING_EXPORT',
exporter: '/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-js/web/dist/server.js',
id: '/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-js/h/dist/h.js',
url: 'https://rollupjs.org/troubleshooting/#error-name-is-not-exported-by-module',
pos: 17,
loc: {
column: 17,
file: '/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-js/h/dist/h.js',
line: 1
},
frame: "1: import { spread, assign, insert, createComponent, dynamicProperty, SVGElements } from 'solid-js/web';\n" +
' ^\n' +
'2: \n' +
'3: const $ELEMENT = Symbol("hyper-element");',
watchFiles: [
'/Users/knpwrs/Downloads/solid-tabler-bug/.solid/server/server.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/.solid/server/entry-server.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/dist/public/route-manifest.json',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start/node/globals.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start-node/server.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-js/dist/server.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-js/web/dist/server.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/solid-start/node/fetch.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/polka/build.mjs',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/tabler-icons-solidjs.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/sirv/build.mjs',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/compression/index.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/createSolidComponent.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@polka/url/build.mjs',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon3dCubeSphere.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon3dCubeSphereOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon360.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon24Hours.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon3dRotate.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon2fa.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAbacusOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAB2.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon360View.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconABOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAB.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAbc.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAbacus.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconActivity.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAccessible.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAccessPointOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAccessibleOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAccessPoint.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAccessibleOffFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdCircle.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAd.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAd2.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconActivityHeartbeat.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdCircleOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdjustmentsAlt.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdjustments.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAddressBook.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAerialLift.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdjustmentsFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAddressBookOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdjustmentsOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/Icon123.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAirBalloon.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAirConditioning.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAffiliate.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAirConditioningDisabled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmMinusFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmPlusFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAffiliateFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAdjustmentsHorizontal.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarm.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmMinus.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlbumOff.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlertCircleFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlertOctagon.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmSnooze.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlertCircle.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmSnoozeFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlarmPlus.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlienFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlien.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxBottomCenter.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlbum.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlertTriangle.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlertTriangleFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlertOctagonFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxBottomLeft.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxBottomCenterFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxBottomRightFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxBottomRight.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxCenterMiddle.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxLeftTopFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxLeftTop.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxLeftBottom.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxLeftBottomFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxLeftMiddleFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxTopCenterFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxLeftMiddle.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxRightBottom.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxRightMiddle.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxTopRight.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxRightTop.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxTopCenter.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxRightBottomFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxTopRightFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxRightTopFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxTopLeftFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignLeft.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignCenter.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxTopLeft.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignBoxBottomLeftFilled.js',
'/Users/knpwrs/Downloads/solid-tabler-bug/node_modules/@tabler/icons-solidjs/dist/esm/icons/IconAlignJustified.js',
... 3443 more items
]
}
Node.js v19.6.1
zsh: exit 1 npm run build
This issue is stale because it has been open for 360 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.
This still gives out the same error with the latest versions of solid-js
, @solidjs/start
and @tabler/icons-solidjs
. However if SSR is turned off (export default defineConfig({ ssr: false })
in app.config.ts
), it works.
In the same fashion, one can just keep SSR on and explicitly import the icons via clientOnly
. This option isn't as idiomatic, however.
Like so:
const IconBrandGithub = clientOnly(async () => ({ default: (await import('@tabler/icons-solidjs')).IconBrandGithub }))
Hi,
Love the work, the lib and the icons but I wanted to switch from SolidJS to Solid Start recently and I unfortunately ran into an issue with this library where I get an error even with the simplest way of using an icon
Repro: https://github.com/gawlk/tabler-icon-solid-start-issue
The error: