jsmind
jsmind copied to clipboard
feat: add multiple build output formats (ES/CJS/UMD)
Summary
This PR adds support for multiple build output formats to better serve different use cases.
Changes
-
Configure Rollup to generate three output formats:
- ES Module () - for modern bundlers with tree-shaking support
- CommonJS () - for require/legacy toolchains
- UMD () - for direct usage with global variables
-
Update package.json:
- Set
mainto CommonJS entry - Set
moduleto ES Module entry - Add
unpkgfields for CDN usage - Update
exportsfield to support conditional imports - Add all output directories to
filesfield
- Set
- Update .gitignore to exclude build outputs
Benefits
- Modern bundlers can use ES modules for better tree-shaking
- Legacy tools can continue using CommonJS
-
CDN users can directly include UMD builds via
<script>tags - Better compatibility across different environments
Testing
- ✅ Build succeeds and generates all three formats
- ✅ All formats include source maps
- ✅ Main library and plugins are built in all formats