pnnit-shared-componentsdeprecated

Boilerplate for writing React Libraries bundled with Rollup.js to commonJs and ES6 Modules and Storybook

Usage no npm install needed!

<script type="module">
  import pnnitSharedComponents from 'https://cdn.skypack.dev/pnnit-shared-components';
</script>

README

pnnit-shared-components

version npm npm bundle size

Developing

To start the developing run:

npm run dev

This will build a version of your library, run the watcher. Start developing your components in src/lib/components folder and update the src/lib/index.js file acordingly.

Storybook

To start storybook locally run:

npm run storybook

Proposals (Babel)

For smoother development some Babel plugin are included

Styling your components

SCSS and CSS are supported out of the box just import your styles into your component like you normaly would do. For the use of CSS Modules refere to rollup-plugin-postcss

Testing

Testing is done with Jest, Enzyme and Jasmine Matchers You can refer to Button.test.js as an example.

> npm run test

or (for getting coverage)

> npm run test:coverage

Linting

Linting is set up through ESLint and configured with eslint-config-airbnb You can modify linting rules by overriding them in the .eslintrc.json file.

> npm run lint

or (for for automatic fixing if possible)

> npm run lint:fix

Publishing your library to NPM

To release your library to NPM or your private Registry, make sure you have an active account at NPM, your .npmrc file is correctly setup and the repository url in package.json file is set to your repoitory url, then:

> npm run release

Scripts

  • npm run dev : Executes the develop mode, running watcher and the Stylguide, rebuilding your library on every change.
  • npm run build : Builds your library (build can be faound in dist folder).
  • npm run test : Runs the tests.
  • npm run test:coverage: Runs the test and shows the coverage.
  • npm run lint : Runs the linter.
  • npm run lint:fix : Runs the linter and fixes automatic fixable issues.
  • npm run release : Publishes your Library on NPM or your private Registry (depending on your config in your .npmrc file).

Resources

Bundler

Testing

Linting

Compiler