canonical / react-components

A set of components based on Vanilla Framework
https://canonical.github.io/react-components
102 stars 58 forks source link

Formik error when using latest version in project #1069

Open steverydz opened 7 months ago

steverydz commented 7 months ago

When using the latest version (0.51.4) of this package in a project, e.g. charmhub.io, the following error occurs, preventing the project from building:

ERROR in ./node_modules/@canonical/react-components/dist/components/FormikField/FormikField.js 8:14-31
Module not found: Error: Can't resolve 'formik' in '/home/ubuntu/charmhub-io/node_modules/@canonical/react-components/dist/components/FormikField'
andesol commented 7 months ago

I've got a similar one:

Uncaught TypeError: The specifier “formik” was a bare specifier, but was not remapped to anything. Relative module specifiers must start with “./”, “../” or “/”.

Seems like formik has been added recently and it's not listed as a dependency in the package.json, but as a dev and peer dependencies. The problem disappeared when I installed it in my project.

bartaz commented 1 month ago

Triage: we need to decide how to deal with that. If formik is used internally it probably needs to be a dependency.

huwshimi commented 1 month ago

Maybe we should move Formik to optional deps. I think it's only used by one component at the moment.

bartaz commented 1 month ago

Using optional dependencies would likely be a bit of a hussle, as we would need to handle it properly in the code for cases when formik is not avaialble (https://docs.npmjs.com/cli/v8/configuring-npm/package-json#optionaldependencies)

Maybe the easiest solution would be to actually move it to dependences, if it is now required for components to work?