Adyen / lume

Lume is a component library for visual representations of data, built for Vue with D3.
https://lumedataviz.com
MIT License
43 stars 2 forks source link

Evaluate yarn and yarn-workspaces and check if it can be used instead of npm and npm-workspaces in Lume #216

Open govind-srinidhi opened 1 year ago

govind-srinidhi commented 1 year ago

Feature description

There is a requirement for us to make Lume work for both Vue 2 and 3. In order to test the functionalities in both the version, we need to have two instances of storybook one to verify all the components in Vue 2 and the other for Vue 3.

We recently noticed an issue with nohoist not available in npm. nohoist allows us to skip sharing the same package between the workspaces.

Storybook for Vue 2 has a dependency of one version of vue-vite package and Vue 3's storybook needs a different dependency of vue-vite.

With the existing hoisting algorithm, npm is picking the shared version of vue-vite always rather than the Vue 2 or 3 specific workspace's vue-vite. This can be easily solved with nohoist feature that's available in other package managers like yarn and pnpm.

Goal of this task is to:

Problem/motivation

No response

Describe alternatives you've considered

No response

Additional context

No response

Validations

govind-srinidhi commented 1 year ago

Tried to make the current setup work with NPM before starting with YARN experimentation:

Here are the observations:

This is more of a maintenance hell, if we need to mimick nohoist feature every time we have to interact with new package. Makes this one of the primary reason to go away with NPM and start considering YARN or PNPM.