React package (#105)

* init new react package project

* setup react package

* Fix config for build

* update package

* Fix build

* update package

* fix package.json

* refactor and cleanup

* bumb beta version

* fix regex

* bump version

* Add hashing

* Add tests

* bump version

* Add peer dependecies

* Add docs

* Add readme link
This commit is contained in:
Eric Fennis
2020-12-02 13:48:39 +01:00
committed by GitHub
parent 571cab88ee
commit cedf113b54
335 changed files with 5164 additions and 11847 deletions

View File

@@ -1,77 +1,41 @@
import babel from '@rollup/plugin-babel';
import bundleSize from '@atomico/rollup-plugin-sizes';
import compiler from '@ampproject/rollup-plugin-closure-compiler';
import { terser } from 'rollup-plugin-terser';
import visualizer from 'rollup-plugin-visualizer';
import license from 'rollup-plugin-license';
import replace from 'rollup-plugin-replace';
import resolve from 'rollup-plugin-node-resolve';
import commonJS from 'rollup-plugin-commonjs';
import pkg from './package.json';
const plugins = require('./rollup.plugins');
const pkg = require('./package.json');
const outputFileName = pkg.name;
const outputDir = 'dist';
const inputs = ['build/lucide.js'];
const bundles = [
{
inputs,
format: 'umd',
dir: 'dist',
inputs,
outputDir,
minify: true,
},
{
inputs,
format: 'umd',
dir: 'dist',
inputs,
outputDir,
},
{
inputs,
format: 'cjs',
dir: 'dist',
inputs,
outputDir,
},
];
const configs = bundles
.map(({ inputs, dir, format, minify }) =>
.map(({ inputs, outputDir, format, minify }) =>
inputs.map(input => ({
input,
external: ['lodash/camelCase', 'lodash/upperFirst'],
plugins: [
replace({
'icons = {}': 'icons = allIcons',
delimiters: ['', ''],
}),
babel({
babelHelpers: 'bundled',
}),
// The two minifiers together seem to procude a smaller bundle 🤷‍♂️
minify && compiler(),
minify && terser(),
license({
banner: `${pkg.name} v${pkg.version} - ${pkg.license}`,
}),
bundleSize(),
resolve(),
commonJS({
include: 'node_modules/**',
}),
visualizer({
sourcemap: true,
filename: `stats/${outputFileName}${minify ? '-min' : ''}.html`,
}),
].filter(Boolean),
plugins: plugins(pkg, minify),
output: {
name: 'lucide',
file: `${dir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
name: outputFileName,
file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
format,
sourcemap: true,
globals: {
'lodash/camelCase': 'camelCase',
'lodash/upperFirst': 'upperFirst',
},
},
})),
)
.flat();
export default configs;
module.exports = configs;