From 1bdeae5364a9a77ea6c021624fddabc8e0013ea7 Mon Sep 17 00:00:00 2001 From: Eric Fennis Date: Mon, 28 Aug 2023 19:41:24 +0200 Subject: [PATCH] Add conditional exports property Lucide Svelte `package.json` (#1499) * add exports property * adjust wild card import * Fix exports * revert bundleSize plugin change * Fix exports build warning --- packages/lucide-svelte/package.json | 18 +++++++++++++++--- packages/lucide-svelte/rollup.config.mjs | 16 ++++++++++++++-- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/packages/lucide-svelte/package.json b/packages/lucide-svelte/package.json index cc1b883a6..2bf346f01 100644 --- a/packages/lucide-svelte/package.json +++ b/packages/lucide-svelte/package.json @@ -11,11 +11,23 @@ "directory": "packages/lucide-svelte" }, "author": "Eric Fennis", - "amdName": "lucide-svelte", "type": "module", "main": "dist/esm/lucide-svelte.js", - "module": "dist/esm/lucide-svelte.js", - "svelte": "dist/svelte/lucide-svelte.js", + "exports": { + ".": { + "default": "./dist/esm/lucide-svelte.js", + "svelte": "./dist/svelte/lucide-svelte.js", + "types": "./dist/lucide-svelte.d.ts" + }, + "./icons": { + "default": "./dist/esm/icons/index.js", + "svelte": "./dist/svelte/icons/index.js" + }, + "./icons/*": { + "default": "./dist/esm/icons/*.js", + "svelte": "./dist/svelte/icons/*.svelte" + } + }, "typings": "dist/lucide-svelte.d.ts", "sideEffects": false, "files": [ diff --git a/packages/lucide-svelte/rollup.config.mjs b/packages/lucide-svelte/rollup.config.mjs index 945d48618..69a21a449 100644 --- a/packages/lucide-svelte/rollup.config.mjs +++ b/packages/lucide-svelte/rollup.config.mjs @@ -15,6 +15,7 @@ const bundles = [ inputs, outputDir, preserveModules: true, + preserveModulesRoot: 'src', }, { format: 'svelte', @@ -25,7 +26,7 @@ const bundles = [ ]; const configs = bundles - .map(({ inputs, outputDir, format, minify, preserveModules }) => + .map(({ inputs, outputDir, format, minify, preserveModules, preserveModulesRoot }) => inputs.map(input => ({ input, plugins: [ @@ -35,7 +36,7 @@ const configs = bundles include: 'src/**/*.svelte', compilerOptions: { dev: false, - css: false, + css: 'external', hydratable: true, }, emitCss: false, @@ -59,11 +60,22 @@ const configs = bundles file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`, }), preserveModules, + preserveModulesRoot, format: format === 'svelte' ? 'esm' : format, sourcemap: true, globals: { svelte: 'svelte', }, + entryFileNames: (chunkInfo) => { + if (chunkInfo.name.includes('node_modules')) { + const [pathToReplace, directory] = chunkInfo.name.match(/.*\/([^\/]+)\//); + const fileName = chunkInfo.name.replace(pathToReplace, ''); + + return `external/${directory}/${fileName}.js`; + } + + return '[name].js'; + } }, })), )