'ESM packages (konva) need to be imported. Use 'import' to reference the package instead
I get the following error when importing Html from react-konva-utils. I have tried importing this using a dynamic import and just by standard import. For instance:
export const Html = dynamic(
() => import("react-konva-utils").then((mod) => mod.Html),
{
ssr: false,
}
);
OR
import {Html} from "react-konva-utils"
I still keep getting the following error.
error - ./node_modules/react-konva-utils/node_modules/react-konva/lib/ReactKonva.js:24:0
Module not found: ESM packages (konva) need to be imported. Use 'import' to reference the package instead. https://nextjs.org/docs/messages/import-esm-externals
Import trace for requested module:
./node_modules/react-konva-utils/es/html.js
./node_modules/react-konva-utils/es/index.js
./src/components/canvas/elements/index.tsx
./src/pages/video/edit/[uuid].tsx
https://nextjs.org/docs/messages/module-not-found
My code:
Text.tsx
import { Html } from "../index";
...
export const Text: React.FC<TextProps> = ({
...
}) => {
const [isTextEditing, setIsTextEditing] = useState(false);
if (isTextEditing)
return (
<Html groupProps={{ x, y }} divProps={{ style: { opacity: 1 } }}>
<textarea
value={label}
style={InputStyle({ width: 400, height: 200, fontSize, fontFamily })}
// onChange={onChange}
/>
</Html>
);
return (
<Text
...
onDblClick={() => setIsTextEditing(true)}
/>
);
};
index.tsx
export const Html = dynamic(
() => import("react-konva-utils").then((mod) => mod.Html),
{
ssr: false,
}
)
Solution 1:[1]
Hi @jmecs I had caught same issue after updating the library, and I have fixed it deleted yarn.lock (or package.lock if you are using npm), and make install again.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ruslan Semenov |
