Running locally can cause issues with multiple versions of react/styled-components producing an error relating to invalid hook calls.
https://github.com/facebook/react/issues/14257
As a workaround we can use a package called Yalc. If you're using Docker please follow these instructions, otherwise run the following:
$ npm install -g yalc
OR
$ yarn global add yalc
cd ui-components/
yarn dev
cd YOUR_PROJECT/
yarn add @cityelectricalfactors/ui-components
yarn install
yalc link @cityelectricalfactors/ui-components
yarn add @cityelectricalfactors/ui-components
yarn add react@17.0.2 react-dom@17.0.2 styled-components@4.4.1
yarn dev
This builds to /dist
and runs the project in watch mode so any edits you save inside src
causes a rebuild to /dist
.
will rebuild if you change files within src/
This will also republish to your local yalc store for to update in your project
Run inside another terminal:
yarn storybook
This loads the stories from ./src/components/**/*.stories.tsx
.
Jest tests are set up to run with npm test
or yarn test
.
TODO: using visualizer
This is the folder structure we set up for you:
/src
/components/
/YourComponent
YourComponent.tsx # EDIT THIS
YourComponent.test.tsx # EDIT THIS
YourComponent.stories.tsx # EDIT THIS
index.ts
/.storybook
main.js
preview.js
.gitignore
package.json
README.md # EDIT THIS
tsconfig.json
uses Rollup as a bundler and generates multiple rollup configs for various module formats and build settings. See Optimizations for details.
tsconfig.json
is set up to interpret dom
and esnext
types, as well as react
for jsx
. Adjust according to your needs.
CJS, ESModules, and UMD module formats are supported.
The appropriate paths are configured in package.json
and dist/index.js
accordingly. Please report if any issues are found.
Per Palmer Group guidelines, always use named exports. Code split inside your React app instead of your React library.
We are using Styled Components
If you unpublish a module via NPM a module with that name can not be used again. The module will need to be renamed and version reset.
If you're updating a component, please increment the version inside the package.json.
When you publish the component yarn will prompt you to update the version number. However, you are able to do this manually if needs be. The following commands will update the version via the CLI:
yarn version --major
yarn version --minor
yarn version --patch
Creates a new version by incrementing the major, minor, or patch number of the current version.
Once you're finished building the component and your pull request has been merged to master.
You can run the CI/CD bitbucket pipelines.
From the Bitbucket UI go navigate to 'pipelines' -> 'Run branch'.
- Select branch 'master'
- Select pipeline 'publish-package-version'
This will run the required steps to publish to NPM
Once finished if you want to get the latest version of this in your project you will need to update your package.json file & run yarn/npm install again