diff --git a/local/rollup/package.json b/local/rollup/package.json index d1b7d39..fc25d10 100644 --- a/local/rollup/package.json +++ b/local/rollup/package.json @@ -20,8 +20,7 @@ "rollup-plugin-scss": "^3.0.0", "rollup-plugin-serve": "^1.1.0", "rollup-plugin-styles": "^4.0.0", - "rollup-plugin-summary": "^1.4.3", - "rollup-plugin-terser": "^7.0.2", + "@rollup/plugin-virtual": "^3.0.1", "rollup-plugin-typescript2": "^0.32.1", "sass": "^1.54.0" }, diff --git a/local/rollup/src/bundle/packageJson.js b/local/rollup/src/bundle/packageJson.js index d7a53ed..1f052fb 100644 --- a/local/rollup/src/bundle/packageJson.js +++ b/local/rollup/src/bundle/packageJson.js @@ -1,17 +1,44 @@ const path = require('path'); -const { terser: rollupTerser } = require('rollup-plugin-terser'); -const { rollupJson } = require('./plugins'); +const { rollupVirtual } = require('./plugins'); -module.exports = (resolve, options) => { - const { extractPackageJson, outDir, rollup } = options; +module.exports = (_, options) => { + const { extractPackageJson, outDir } = options; - const { input = './package.json', output = './package.json' } = extractPackageJson; + const { + input = './package.json', + output = './package.json', + json, + } = typeof extractPackageJson === 'object' ? extractPackageJson : {}; + const resolvedInput = path.resolve(input); + const inputPackageJson = require(resolvedInput); return { - input, + input: resolvedInput, + onwarn: (warning, warn) => { + if (warning.code !== 'EMPTY_BUNDLE') { + warn(warning); + } + }, output: { file: path.resolve(outDir, output), }, - plugins: [rollupJson()], + plugins: [ + rollupVirtual({ + [resolvedInput]: '', + }), + { + generateBundle(__, bundle) { + const bundleKeys = Object.keys(bundle); + if (bundleKeys.length > 1) { + throw new Error('Unexpected entries length.'); + } + bundle[bundleKeys[0]].code = JSON.stringify( + typeof json === 'function' ? json(inputPackageJson) : inputPackageJson, + null, + 2 + ); + }, + }, + ], }; }; diff --git a/local/rollup/src/bundle/plugins.js b/local/rollup/src/bundle/plugins.js index 3900695..a272306 100644 --- a/local/rollup/src/bundle/plugins.js +++ b/local/rollup/src/bundle/plugins.js @@ -9,7 +9,7 @@ const rollupPluginScss = require('rollup-plugin-scss'); const rollupPluginIgnoreImport = require('rollup-plugin-ignore-import'); const rollupPluginCommonjs = require('@rollup/plugin-commonjs'); const rollupPluginAlias = require('@rollup/plugin-alias'); -const rollupPluginJson = require('@rollup/plugin-json'); +const rollupPluginVirtual = require('@rollup/plugin-virtual'); const rollupPluginTs = require('rollup-plugin-typescript2'); const rollupPluginLicense = require('rollup-plugin-license'); const rollupPluginEsBuild = require('../plugins/esbuild'); @@ -128,5 +128,5 @@ module.exports = { commentStyle: 'ignored', }, }), - rollupJson: () => rollupPluginJson(), + rollupVirtual: (modules) => rollupPluginVirtual(modules), }; diff --git a/local/rollup/src/pipeline.default.js b/local/rollup/src/pipeline.default.js index f1bc336..bee12dc 100644 --- a/local/rollup/src/pipeline.default.js +++ b/local/rollup/src/pipeline.default.js @@ -8,10 +8,10 @@ module.exports = (resolve, options, esbuild) => { const { extractTypes, extractStyles, extractPackageJson } = options; const bundleScript = esbuild ? bundleScriptEsbuild : bundleScriptDefault; + const pkgJson = extractPackageJson && bundlePackageJson(resolve, options); const styles = extractStyles && bundleStyles(resolve, options); const types = extractTypes && bundleTypes(resolve, options); const js = bundleScript(resolve, options); - const pkgJson = extractPackageJson && bundlePackageJson(resolve, options); - return [styles, types, js, pkgJson].flat().filter((build) => !!build); + return [pkgJson, styles, types, js].flat().filter((build) => !!build); }; diff --git a/package-lock.json b/package-lock.json index 99f93e6..0a20053 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,6 +57,9 @@ "playwright-webkit": "^1.22.2", "prettier": "^2.6.2", "rollup": "^2.75.5", + "rollup-plugin-esbuild-resolve": "^1.0.0", + "rollup-plugin-summary": "^1.4.3", + "rollup-plugin-terser": "^7.0.2", "should": "^13.2.3", "tslib": "^2.4.0", "typescript": "^4.7.4", @@ -109,6 +112,7 @@ "@rollup/plugin-commonjs": "^23.0.2", "@rollup/plugin-html": "^1.0.1", "@rollup/plugin-json": "^5.0.1", + "@rollup/plugin-virtual": "^3.0.1", "autoprefixer": "^10.4.7", "cssnano": "^5.1.12", "glob": "^7.1.6", @@ -122,8 +126,6 @@ "rollup-plugin-scss": "^3.0.0", "rollup-plugin-serve": "^1.1.0", "rollup-plugin-styles": "^4.0.0", - "rollup-plugin-summary": "^1.4.3", - "rollup-plugin-terser": "^7.0.2", "rollup-plugin-typescript2": "^0.32.1", "sass": "^1.54.0" } @@ -243,16 +245,6 @@ "typescript": "^4.1" } }, - "local/rollup/node_modules/rollup-plugin-esbuild-resolve": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild-resolve/-/rollup-plugin-esbuild-resolve-1.1.0.tgz", - "integrity": "sha512-VTYcSYYwo1uHw2XoiO/G3RsvJE8uEuihBO2GW/0sc2IzupZSGiS2qpz1+Vg+l6sbuM6Mzy6p1HoE4gs+MqcwEA==", - "dev": true, - "peerDependencies": { - "esbuild": "^0.15.10", - "rollup": "^2.79.1" - } - }, "local/rollup/node_modules/rollup-plugin-license": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.0.tgz", @@ -4391,6 +4383,23 @@ } } }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", + "integrity": "sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/pluginutils": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", @@ -24706,6 +24715,16 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-esbuild-resolve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild-resolve/-/rollup-plugin-esbuild-resolve-1.1.0.tgz", + "integrity": "sha512-VTYcSYYwo1uHw2XoiO/G3RsvJE8uEuihBO2GW/0sc2IzupZSGiS2qpz1+Vg+l6sbuM6Mzy6p1HoE4gs+MqcwEA==", + "dev": true, + "peerDependencies": { + "esbuild": "^0.15.10", + "rollup": "^2.79.1" + } + }, "node_modules/rollup-plugin-ignore-import": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz", @@ -31724,6 +31743,7 @@ "@rollup/plugin-commonjs": "^23.0.2", "@rollup/plugin-html": "^1.0.1", "@rollup/plugin-json": "^5.0.1", + "@rollup/plugin-virtual": "^3.0.1", "autoprefixer": "^10.4.7", "cssnano": "^5.1.12", "glob": "^7.1.6", @@ -31737,8 +31757,6 @@ "rollup-plugin-scss": "^3.0.0", "rollup-plugin-serve": "^1.1.0", "rollup-plugin-styles": "^4.0.0", - "rollup-plugin-summary": "^1.4.3", - "rollup-plugin-terser": "^7.0.2", "rollup-plugin-typescript2": "^0.32.1", "sass": "^1.54.0" }, @@ -31815,13 +31833,6 @@ "magic-string": "^0.26.6" } }, - "rollup-plugin-esbuild-resolve": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild-resolve/-/rollup-plugin-esbuild-resolve-1.1.0.tgz", - "integrity": "sha512-VTYcSYYwo1uHw2XoiO/G3RsvJE8uEuihBO2GW/0sc2IzupZSGiS2qpz1+Vg+l6sbuM6Mzy6p1HoE4gs+MqcwEA==", - "dev": true, - "requires": {} - }, "rollup-plugin-license": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.9.0.tgz", @@ -34696,6 +34707,13 @@ "dev": true, "requires": {} }, + "@rollup/plugin-virtual": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", + "integrity": "sha512-fK8O0IL5+q+GrsMLuACVNk2x21g3yaw+sG2qn16SnUd3IlBsQyvWxLMGHmCmXRMecPjGRSZ/1LmZB4rjQm68og==", + "dev": true, + "requires": {} + }, "@rollup/pluginutils": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", @@ -51124,6 +51142,13 @@ "fsevents": "~2.3.2" } }, + "rollup-plugin-esbuild-resolve": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-esbuild-resolve/-/rollup-plugin-esbuild-resolve-1.1.0.tgz", + "integrity": "sha512-VTYcSYYwo1uHw2XoiO/G3RsvJE8uEuihBO2GW/0sc2IzupZSGiS2qpz1+Vg+l6sbuM6Mzy6p1HoE4gs+MqcwEA==", + "dev": true, + "requires": {} + }, "rollup-plugin-ignore-import": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/rollup-plugin-ignore-import/-/rollup-plugin-ignore-import-1.3.2.tgz", diff --git a/package.json b/package.json index 48730f8..971b76b 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,9 @@ "playwright-webkit": "^1.22.2", "prettier": "^2.6.2", "rollup": "^2.75.5", + "rollup-plugin-esbuild-resolve": "^1.0.0", + "rollup-plugin-summary": "^1.4.3", + "rollup-plugin-terser": "^7.0.2", "should": "^13.2.3", "tslib": "^2.4.0", "typescript": "^4.7.4", diff --git a/packages/overlayscrollbars-react/vite.config.js b/packages/overlayscrollbars-react/vite.config.js index c3ac54d..9d42c49 100644 --- a/packages/overlayscrollbars-react/vite.config.js +++ b/packages/overlayscrollbars-react/vite.config.js @@ -1,6 +1,6 @@ import { resolve } from 'node:path'; -import { fileURLToPath, URL } from 'node:url'; import { defineConfig } from 'vite'; +import { esbuildResolve } from 'rollup-plugin-esbuild-resolve'; import react from '@vitejs/plugin-react'; export default defineConfig({ @@ -21,10 +21,5 @@ export default defineConfig({ }, }, }, - resolve: { - alias: { - '~': fileURLToPath(new URL('./src', import.meta.url)), - }, - }, - plugins: [react({ jsxRuntime: 'classic' })], + plugins: [esbuildResolve(), react({ jsxRuntime: 'classic' })], }); diff --git a/packages/overlayscrollbars-svelte/vite.config.js b/packages/overlayscrollbars-svelte/vite.config.js index 4bad41d..bc1438f 100644 --- a/packages/overlayscrollbars-svelte/vite.config.js +++ b/packages/overlayscrollbars-svelte/vite.config.js @@ -1,13 +1,8 @@ -import { fileURLToPath, URL } from 'node:url'; import { defineConfig } from 'vitest/config'; +import { esbuildResolve } from 'rollup-plugin-esbuild-resolve'; import { svelte } from '@sveltejs/vite-plugin-svelte'; // only used for tests export default defineConfig({ - plugins: [svelte()], - resolve: { - alias: { - '~': fileURLToPath(new URL('./src', import.meta.url)), - }, - }, + plugins: [esbuildResolve(), svelte()], }); diff --git a/packages/overlayscrollbars-vue/vite.config.js b/packages/overlayscrollbars-vue/vite.config.js index 04faad3..2eb2011 100644 --- a/packages/overlayscrollbars-vue/vite.config.js +++ b/packages/overlayscrollbars-vue/vite.config.js @@ -1,6 +1,6 @@ import { resolve } from 'node:path'; -import { fileURLToPath, URL } from 'node:url'; import { defineConfig } from 'vite'; +import { esbuildResolve } from 'rollup-plugin-esbuild-resolve'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ @@ -21,10 +21,5 @@ export default defineConfig({ }, }, }, - resolve: { - alias: { - '~': fileURLToPath(new URL('./src', import.meta.url)), - }, - }, - plugins: [vue()], + plugins: [esbuildResolve(), vue()], }); diff --git a/packages/overlayscrollbars/.gitignore b/packages/overlayscrollbars/.gitignore index b2a3f9c..cd39e82 100644 --- a/packages/overlayscrollbars/.gitignore +++ b/packages/overlayscrollbars/.gitignore @@ -1,7 +1,5 @@ # Compiled output /dist -/styles -/types # Playwright output .build/ diff --git a/packages/overlayscrollbars/package.json b/packages/overlayscrollbars/package.json index 6b1fa83..d3679fd 100644 --- a/packages/overlayscrollbars/package.json +++ b/packages/overlayscrollbars/package.json @@ -1,5 +1,6 @@ { "name": "overlayscrollbars", + "private": true, "version": "2.0.0-beta.3", "description": "A scrollbar plugin that hides native scrollbars, provides custom styleable overlay scrollbars and keeps the native functionality and feeling.", "author": "Rene Haas | KingSora", @@ -28,16 +29,16 @@ "styles", "README.md" ], - "main": "dist/overlayscrollbars.cjs.js", - "module": "dist/overlayscrollbars.esm.js", - "types": "types/overlayscrollbars.d.ts", + "main": "src/index.ts", + "module": "src/index.ts", + "types": "src/index.ts", "exports": { ".": { - "require": "./dist/overlayscrollbars.cjs", - "import": "./dist/overlayscrollbars.mjs", - "types": "./types/overlayscrollbars.d.ts" + "require": "./src/index.ts", + "import": "./src/index.ts", + "types": "./src/index.ts" }, - "./overlayscrollbars.css": "./styles/overlayscrollbars.css" + "./overlayscrollbars.scss": "./src/index.scss" }, "sideEffects": ["*.css", "*.scss", "*.sass"], "scripts": { diff --git a/packages/overlayscrollbars/rollup.config.js b/packages/overlayscrollbars/rollup.config.js index 5f3bbf3..d66996f 100644 --- a/packages/overlayscrollbars/rollup.config.js +++ b/packages/overlayscrollbars/rollup.config.js @@ -9,7 +9,43 @@ module.exports = createRollupConfig({ verbose: true, extractStyles: true, extractTypes: true, - extractPackageJson: false, + extractPackageJson: { + json: ({ + name, + version: originalVersion, + description, + author, + license, + homepage, + bugs, + repository, + keywords, + }) => { + return { + name, + version: originalVersion, + description, + author, + license, + homepage, + bugs, + repository, + keywords, + main: 'overlayscrollbars.cjs.js', + module: 'overlayscrollbars.esm.js', + types: 'overlayscrollbars.d.ts', + exports: { + '.': { + require: './overlayscrollbars.cjs', + import: './overlayscrollbars.mjs', + types: './types/overlayscrollbars.d.ts', + }, + './overlayscrollbars.css': './styles/overlayscrollbars.css', + }, + sideEffects: ['*.css', '*.scss', '*.sass'], + }; + }, + }, versions: [ { format: 'cjs',