animated-componentlib-hk
v1.0.1
Published
A react component library with animation.
Readme
Initial Setup
npm init
create folder
srcandcomponentscreate
index.jsinsrcnpm install --save-dev react react-dom
add
peerDependencieswithreactandreact-dominpackage.json
Story Book
npx sb initinstall storybook
Create Component
- create file with component name in
componentfolder - create
index.jsfile withexport * from "./ComponentName" - go to
index.jsfile undersrcwithexport * from "./components/ComponentName"
Create Story Book Component
- create a
Name.stories.jsunder stories folder - add the following code
import React from 'react';
import {storiesOf} from '@storybook/react';
import {ExampleComponent} from '../components/ExampleComponent';
const stories = storiesOf('App Test', module);
stories.add('App', ()=> {
return (<ExampleComponent/>)
});- run
npm run storybookto Dev the component
Roll-up
- run
npm install rollup rollup-plugin-babel @rollup/plugin-babel @rollup/plugin-node-resolve rollup-plugin-peer-deps-external --save-dev- run
npm install --save-dev @babel/preset-react- modify the
package.jsonscript add
"rollup-plugin-postcss": "^4.0.2"- create a
rollup.config.json root folder
import babel from 'rollup-plugin-babel';
import resolve from "@rollup/plugin-node-resolve";
import external from "rollup-plugin-peer-deps-external";
export default [
{
input: './src/index.js',
output: [
{
file: 'dist/index.js',
format: 'cjs',
},
{
file: 'dist/index.es.js',
format: 'es',
exports: 'named',
}
],
plugins: [
babel({
exclude: 'node_module/**',
presets: ['@babel/preset-react']
}),
external(),
resolve(),
]
}
]- run
npm install rollup-plugin-postcss- update the
rollup.config.js
import babel from 'rollup-plugin-babel';
import resolve from "@rollup/plugin-node-resolve";
import external from "rollup-plugin-peer-deps-external";
export default [
{
input: './src/index.js',
output: [
{
file: 'dist/index.js',
format: 'cjs',
},
{
file: 'dist/index.es.js',
format: 'es',
exports: 'named',
}
],
plugins: [
postcss({
plugins: [],
minimize: true,
}),
babel({
exclude: 'node_module/**',
presets: ['@babel/preset-react']
}),
external(),
resolve(),
]
}
]- run
npm run build-libMinimize the dis by Terser
- import terser in
rollup.config.js
import {terser} from 'rollup-plugin-terser';- update the
rollup.config.js
import babel from 'rollup-plugin-babel';
import resolve from "@rollup/plugin-node-resolve";
import external from "rollup-plugin-peer-deps-external";
import {terser} from 'rollup-plugin-terser';
import postcss from "rollup-plugin-postcss";
export default [
{
input: './src/index.js',
output: [
{
file: 'dist/index.js',
format: 'cjs',
},
{
file: 'dist/index.es.js',
format: 'es',
exports: 'named',
}
],
plugins: [
postcss({
plugins: [],
minimize: true,
}),
babel({
exclude: 'node_module/**',
presets: ['@babel/preset-react']
}),
external(),
resolve(),
terser(),
]
}
]Publish the package
- login the npm ac
npm login- update the code with the following code on
package.json
"main": "dist/index.js",
"module": "dist/index.es.js",- publish the lib
npm publish