From 77123986bfef948b69d1865beb865e99619729ab Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:26:11 +0100 Subject: [PATCH 1/8] Add vite as devDependency --- package.json | 3 ++- vite.config.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 vite.config.js diff --git a/package.json b/package.json index 43c864f..4dc4fef 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,8 @@ "rollup": "^2.67.0", "rollup-plugin-postcss": "^4.0.2", "rollup-plugin-terser": "^7.0.2", - "size-limit": "^7.0.5" + "size-limit": "^7.0.5", + "vite": "^2.8.0" }, "size-limit": [ { diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..b2ea4e6 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,18 @@ +import { defineConfig } from "vite"; +import * as path from "path"; + +export default defineConfig({ + esbuild: { + minify: true, + }, + build: { + sourcemap: true, + target: "esnext", + minify: "terser", + lib: { + entry: path.resolve("./src/index.js"), + name: "Shareon", + formats: ["es", "umd", "iife"], + }, + }, +}); From 1b151450cd05ead24d14eeb6d9d3439ad8852aa2 Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:34:06 +0100 Subject: [PATCH 2/8] Add demo page --- index.html | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..2cef813 --- /dev/null +++ b/index.html @@ -0,0 +1,116 @@ + + + + + + Shareon Demo Page + + + + + + + +
+

Shareon Demo Page

+
+

<a>

+
+ + + + + + + + + + + + + +
+
+
+

<button>

+
+ + + + + + + + + + + + + +
+
+
+

<a> with custom params

+
+ + + + + + + + + + + + + +
+
+
+

Specimen

+
+ + + Toot + + + Pin +
+ + + + + + Отправить + +
+
+
+ + + + From 4b1375459707091aa0b20c7221b662c83e69b3e1 Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:44:22 +0100 Subject: [PATCH 3/8] Extract PostCSS config --- postcss.config.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 postcss.config.js diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..0b0d275 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,21 @@ +const pkg = require("./package.json"); +const bannerText = `${pkg.name} v${pkg.version}`; + +module.exports = { + map: { + inline: false, + }, + plugins: [ + require("postcss-css-variables"), + require("postcss-calc"), + require("cssnano")({ + preset: "default", + }), + require("autoprefixer"), + require("postcss-banner")({ + banner: bannerText, + important: true, + inline: true, + }), + ], +}; From f6d5e43bcba691403ce551a388a89e01f5bc0a88 Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:44:35 +0100 Subject: [PATCH 4/8] Add banner options from Rollup config --- vite.config.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vite.config.js b/vite.config.js index b2ea4e6..da82255 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,5 +1,6 @@ import { defineConfig } from "vite"; import * as path from "path"; +import pkg from "./package.json"; export default defineConfig({ esbuild: { @@ -14,5 +15,10 @@ export default defineConfig({ name: "Shareon", formats: ["es", "umd", "iife"], }, + rollupOptions: { + output: { + banner: `/*! ${pkg.name} v${pkg.version} */`, + }, + }, }, }); From 50d9e900f29f86b095df3efbb46111ee4df79292 Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:44:53 +0100 Subject: [PATCH 5/8] Add new build scripts --- package.json | 8 +++++--- src/index.js | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 4dc4fef..1400cf4 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,10 @@ "dist" ], "scripts": { - "build": "rollup --config", - "build:dev": "cross-env NODE_ENV=development rollup --config", - "dev": "cross-env NODE_ENV=development rollup --config --watch", + "build": "pnpm run build:js && pnpm run build:css", + "build:js": "vite build", + "build:css": "postcss src/shareon.css -o dist/shareon.min.css --map", + "dev": "vite", "lint": "prettier --check . && eslint src/*.js", "size": "size-limit", "test": "pnpm run lint && pnpm run build && pnpm run size", @@ -55,6 +56,7 @@ "postcss": "^8.4.6", "postcss-banner": "^4.0.1", "postcss-calc": "^8.2.3", + "postcss-cli": "^9.1.0", "postcss-css-variables": "^0.18.0", "prettier": "^2.5.1", "rollup": "^2.67.0", diff --git a/src/index.js b/src/index.js index 108922a..7439056 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,4 @@ import initializeShareon from "./shareon"; -import "./shareon.css"; // TODO: update README const s = document.currentScript; From a401180d4a2ccdeaf8a04540c141807b1bcfab97 Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:47:21 +0100 Subject: [PATCH 6/8] Remove unneeded dependencies --- package.json | 7 ---- rollup.config.js | 91 ------------------------------------------------ 2 files changed, 98 deletions(-) delete mode 100644 rollup.config.js diff --git a/package.json b/package.json index 1400cf4..b6855e3 100644 --- a/package.json +++ b/package.json @@ -42,12 +42,8 @@ "postversion": "pnpm run build" }, "devDependencies": { - "@rollup/plugin-buble": "^0.21.3", - "@rollup/plugin-strip": "^2.1.0", "@size-limit/preset-small-lib": "^7.0.5", "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "cross-env": "^7.0.3", "cssnano": "^5.0.16", "eslint": "^8.8.0", "eslint-config-airbnb-base": "^15.0.0", @@ -59,9 +55,6 @@ "postcss-cli": "^9.1.0", "postcss-css-variables": "^0.18.0", "prettier": "^2.5.1", - "rollup": "^2.67.0", - "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-terser": "^7.0.2", "size-limit": "^7.0.5", "vite": "^2.8.0" }, diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 07f652c..0000000 --- a/rollup.config.js +++ /dev/null @@ -1,91 +0,0 @@ -import { join, resolve } from "path"; - -import buble from "@rollup/plugin-buble"; -import strip from "@rollup/plugin-strip"; -import postcss from "rollup-plugin-postcss"; -import { terser } from "rollup-plugin-terser"; - -const autoprefixer = require("autoprefixer"); -const banner = require("postcss-banner"); -const calc = require("postcss-calc"); -const cssnano = require("cssnano"); -const cssVariables = require("postcss-css-variables"); - -const pkg = require("./package.json"); - -const isDev = - process.env.ROLLUP_WATCH || process.env.NODE_ENV === "development"; -const outputDir = resolve(".", "dist"); -const bannerText = `${pkg.name} v${pkg.version}`; - -const postcssPlugins = [cssVariables, calc]; - -if (!isDev) { - postcssPlugins.push( - cssnano({ - preset: "default", - }), - autoprefixer(), - banner({ - banner: bannerText, - important: true, - inline: true, - }) - ); -} - -const getPlugins = (css) => [ - css && - postcss({ - extract: resolve(join(outputDir, "shareon.min.css")), - plugins: postcssPlugins, - }), - !isDev && - strip({ - debugger: true, - include: ["**/*.js"], - functions: ["console.log", "console.debug", "assert.*"], - sourceMap: false, - }), - !isDev && - buble({ - transforms: { - modules: false, - }, - }), -]; - -const getOutput = (baseDir) => { - const defaultParameters = { - name: pkg.name, - exports: "default", - }; - - return [ - { - ...defaultParameters, - format: "iife", - file: join(baseDir, `${pkg.name}${isDev ? "" : ".min"}.js`), - plugins: isDev ? [] : [terser({ output: { comments: /^!/ } })], - banner: `/*! ${bannerText} */`, - }, - !isDev && { - ...defaultParameters, - format: "cjs", - file: join(baseDir, `${pkg.name}.cjs`), - banner: `/*! ${bannerText} */`, - }, - !isDev && { - ...defaultParameters, - format: "esm", - file: join(baseDir, `${pkg.name}.mjs`), - banner: `/*! ${bannerText} */`, - }, - ]; -}; - -export default { - input: join(__dirname, "src", "index.js"), - output: getOutput(outputDir), - plugins: getPlugins(true), -}; From c9364937b43bb94a1a384da070f22658b6f5e754 Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:48:45 +0100 Subject: [PATCH 7/8] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63f38c9..1683f2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - **BREAKING:** default version of the package doesn't auto-initialize buttons - remove mixins, defining the code/styles directly in the files +- use [Vite](https://vitejs.dev/) for building, reducing the devDependencies + tree and build times drastically + - **BREAKING:** newly built files offer worse browser support - change code style to [Prettier](https://prettier.io/) ### Removed From c2e1ee5bd9782a41a0506e64bbe69abaab51ad6e Mon Sep 17 00:00:00 2001 From: Nikita Karamov Date: Thu, 10 Feb 2022 21:51:37 +0100 Subject: [PATCH 8/8] Rename fields in package.json --- package.json | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b6855e3..341580b 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,15 @@ "email": "me@kytta.dev", "url": "https://www.kytta.dev" }, - "main": "./dist/shareon.cjs", - "module": "./dist/shareon.mjs", - "unpkg": "./dist/shareon.min.js", + "main": "./dist/shareon.umd.js", + "unpkg": "./dist/shareon.iife.js", + "jsdelivr": "./dist/shareon.iife.js", + "module": "./dist/shareon.es.js", "exports": { - "require": "./dist/shareon.cjs", - "import": "./dist/shareon.mjs" + ".": { + "import": "./dist/shareon.es.js", + "require": "./dist/shareon.umd.js" + } }, "files": [ "dist" @@ -65,7 +68,7 @@ }, { "limit": "1 KB", - "path": "./dist/shareon.mjs" + "path": "./dist/shareon.es.js" } ] }