aboutsummaryrefslogtreecommitdiff
path: root/rollup.config.js
diff options
context:
space:
mode:
authorMichal Wolny <michal.wolny@versum.pl>2020-10-06 19:28:20 +0200
committerMichal Wolny <michal.wolny@versum.pl>2020-10-06 19:28:20 +0200
commitd82841119820b4814169a8fa42a88f166f406a6f (patch)
tree5617b40088a57a19c74b454d949bbba5d3b63c63 /rollup.config.js
parentRelease 1.33.0 (diff)
downloadtabler-icons-d82841119820b4814169a8fa42a88f166f406a6f.tar.xz
[dev-icons-react-bundling] change svgr template to enable babel transformation, add babel with react and env, add rollup for commonJS, UMD and ESM, add gulp and npm tasks for building react, add peer react and react-dom dependencies, add needed deps, updated npm package files, updated readme
Diffstat (limited to 'rollup.config.js')
-rw-r--r--rollup.config.js119
1 files changed, 119 insertions, 0 deletions
diff --git a/rollup.config.js b/rollup.config.js
new file mode 100644
index 00000000..bfcf4f3e
--- /dev/null
+++ b/rollup.config.js
@@ -0,0 +1,119 @@
+import resolve from "@rollup/plugin-node-resolve";
+import commonjs from "@rollup/plugin-commonjs";
+import filesize from "rollup-plugin-filesize";
+import babel from "@rollup/plugin-babel";
+import external from "rollup-plugin-peer-deps-external";
+import { terser } from "rollup-plugin-terser";
+import { uglify } from "rollup-plugin-uglify";
+import pkg from "./package.json";
+
+const input = "icons-react/index.js";
+
+const minifyExtension = (pathToFile) => pathToFile.replace(/\.js$/, ".min.js");
+
+const plugins = [
+ babel({
+ exclude: "node_modules/**",
+ }),
+ external(),
+ resolve(),
+ commonjs(),
+ filesize(),
+];
+
+const minCjsPlugins = [
+ babel({
+ exclude: "node_modules/**",
+ }),
+ external(),
+ resolve(),
+ commonjs(),
+ uglify(),
+ filesize(),
+];
+
+const minUmdEsmPlugins = [
+ babel({
+ exclude: "node_modules/**",
+ }),
+ external(),
+ resolve(),
+ commonjs(),
+ terser(),
+ filesize(),
+];
+
+export default [
+ // CommonJS (for Node)
+ {
+ input,
+ output: {
+ file: pkg.main,
+ format: "cjs",
+ sourcemap: true,
+ },
+ plugins,
+ },
+ // CommonJS (for Node) minified
+ {
+ input,
+ output: {
+ file: minifyExtension(pkg.main),
+ format: "cjs",
+ sourcemap: true,
+ },
+ plugins: minCjsPlugins,
+ },
+ // UMD (for browser)
+ {
+ input,
+ output: {
+ file: pkg.browser,
+ format: "umd",
+ sourcemap: true,
+ name: "tablerIcons",
+ globals: {
+ react: "React",
+ "react-dom": "ReactDOM",
+ },
+ },
+ plugins,
+ },
+ // UMD (for browser) minified
+ {
+ input,
+ output: {
+ file: minifyExtension(pkg.browser),
+ format: "umd",
+ sourcemap: true,
+ name: "tablerIcons",
+ globals: {
+ react: "React",
+ "react-dom": "ReactDOM",
+ },
+ },
+ plugins: minUmdEsmPlugins,
+ },
+ // ESM (for bundlers)
+ {
+ input,
+ output: {
+ file: pkg.module,
+ format: "es",
+ sourcemap: true,
+ exports: "named",
+ },
+ plugins,
+ },
+ // ESM (for bundlers) minified
+ {
+ input,
+ output: {
+ file: minifyExtension(pkg.module),
+ format: "es",
+ sourcemap: true,
+ exports: "named",
+ },
+ plugins: minUmdEsmPlugins,
+ },
+];