๐ A Monorepo with multiple packages and a shared build, test, and release process.
A Monorepo with multiple packages and a shared build, test, and release process.
View example โก๏ธ https://storybook-monorepo.now.sh/
yarn dev
- This starts Storybook for viewing all the components locally.yarn bootstrap
- This installs all of the packages and links dependent packages together.yarn build
- This babelfies all of the packages and creates /lib
folders for each one.yarn test
- Run all linting and unit tests before committing.yarn test -o
- Run only the tests that have changed.yarn test -u
- Update all of the snapshot tests.lerna changed
- Show which packages have changed.lerna diff
- Show specifically what files have cause the packages to change.When linking inside of the Monorepo, everything works as expected. If you are trying to consume packages from this Monorepo in a different application locally, using npm link
or yarn link
does not work as expected. However, we have a workaround for the time being.
yarn build
yarn dev
package.json
of the consumer from $YOUR_PACKAGE_NAME
(which lives inside the monorepo) to file:./../monorepo/packages/$YOUR_PACKAGE_NAME
rm -rf node_modules && yarn
in the consumerAll formatting and linting should be taken care of for you using stylelint, ESLint, and Prettier. You should also consider installing an extension for CSS syntax highlighting.
It's a known issue that yarn workspaces using yarn versions > 1.18.0
can produce the following false positive error message when adding or updating dependencies in packages.
error An unexpected error occurred: "expected workspace package to exist for "XXX".
To guard against this, we've: