feat: replace esbuild with Rollup, add CJS/UMD bundles and deep import support
Build pipeline now consists of two passes: 1. tsc --outDir dist — individual ESM modules for deep imports 2. rollup -c — bundled ESM, CJS, and UMD (minified + unminified) Package.json changes: - main/dist/index.cjs (CJS for require()) - module/dist/index.js (ESM for bundlers) - types/dist/index.d.ts (bundled declarations via rollup-plugin-dts) - unpkg/dist/index.umd.js (CDN entry) - exports map with ./dist/* wildcard for deep imports - sideEffects: true since every component calls customElements.define - files: [dist, README.md] tsconfig.json: adds declarationMap: true for Go-to-Definition to source. Dependencies: removed esbuild, added rollup, @rollup/plugin-typescript, @rollup/plugin-terser, rollup-plugin-dts, tslib.
This commit is contained in:
parent
6906505a53
commit
3ec2d07115
1265
package-lock.json
generated
1265
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@ -2,17 +2,27 @@
|
||||
"name": "leaflet-components",
|
||||
"version": "0.1.0",
|
||||
"description": "LeafletJS as Web Components",
|
||||
"main": "dist/index.js",
|
||||
"main": "dist/index.cjs",
|
||||
"module": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"unpkg": "dist/index.umd.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts"
|
||||
}
|
||||
"require": "./dist/index.cjs"
|
||||
},
|
||||
"./dist/*": "./dist/*",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"sideEffects": true,
|
||||
"files": [
|
||||
"dist",
|
||||
"README.md"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "rm -rf dist && tsc --emitDeclarationOnly && esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js",
|
||||
"build": "rm -rf dist && tsc --outDir dist && rollup -c rollup.config.mjs",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"lint": "eslint 'src/**/*.{ts,js}'",
|
||||
"format": "prettier --write 'src/**/*.{ts,js,json,md}'",
|
||||
"prepublishOnly": "npm run build"
|
||||
@ -29,14 +39,18 @@
|
||||
"leaflet": "1.9.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-terser": "^1.0.0",
|
||||
"@rollup/plugin-typescript": "^12.3.0",
|
||||
"@types/leaflet": "1.9.21",
|
||||
"@typescript-eslint/eslint-plugin": "8.60.1",
|
||||
"@typescript-eslint/parser": "8.60.1",
|
||||
"esbuild": "^0.28.0",
|
||||
"eslint": "10.4.1",
|
||||
"eslint-config-prettier": "10.1.8",
|
||||
"eslint-plugin-prettier": "5.5.6",
|
||||
"prettier": "3.8.3",
|
||||
"rollup": "^4.61.1",
|
||||
"rollup-plugin-dts": "^6.4.1",
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "6.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
25
rollup.config.mjs
Normal file
25
rollup.config.mjs
Normal file
@ -0,0 +1,25 @@
|
||||
import typescript from '@rollup/plugin-typescript';
|
||||
import terser from '@rollup/plugin-terser';
|
||||
import dts from 'rollup-plugin-dts';
|
||||
|
||||
export default [
|
||||
{
|
||||
input: 'src/index.ts',
|
||||
external: ['leaflet'],
|
||||
plugins: [typescript({ declaration: false, declarationMap: false })],
|
||||
output: [
|
||||
{ format: 'es', file: 'dist/index.js' },
|
||||
{ format: 'es', file: 'dist/index.min.js', plugins: [terser()] },
|
||||
{ format: 'cjs', file: 'dist/index.cjs' },
|
||||
{ format: 'cjs', file: 'dist/index.min.cjs', plugins: [terser()] },
|
||||
{ format: 'umd', name: 'LeafletComponents', file: 'dist/index.umd.js', globals: { leaflet: 'L' } },
|
||||
{ format: 'umd', name: 'LeafletComponents', file: 'dist/index.umd.min.js', globals: { leaflet: 'L' }, plugins: [terser()] },
|
||||
],
|
||||
},
|
||||
{
|
||||
input: 'src/index.ts',
|
||||
external: ['leaflet'],
|
||||
plugins: [dts()],
|
||||
output: { format: 'es', file: 'dist/index.d.ts' },
|
||||
},
|
||||
];
|
||||
@ -5,6 +5,7 @@
|
||||
"moduleResolution": "bundler",
|
||||
"lib": ["ESNext", "DOM", "DOM.Iterable"],
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src",
|
||||
"strict": true,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user