# Migration Guide - v3.2.0 ## What Changed? Version 3.2.0 introduces ES module (ESM) support as the primary distribution format while maintaining backward compatibility with CommonJS and browser usage. ## Breaking Changes ### 1. Package Distribution Format The package now uses **dual package exports** with ESM as the default: **Before (v3.x):** - Single UMD bundle: `dist/chartjs-plugin-trendline.min.js` - CommonJS-style package **After (v3.2.x):** - ESM build: `dist/chartjs-plugin-trendline.esm.js` - CommonJS build: `dist/chartjs-plugin-trendline.cjs` - UMD build (unminified): `dist/chartjs-plugin-trendline.js` - UMD build (minified): `dist/chartjs-plugin-trendline.min.js` ### 2. Import Changes #### Modern Bundlers (Vite, SvelteKit, Next.js, webpack 5) No changes needed! Your bundler will automatically use the ESM version: ```javascript import ChartJSTrendline from 'chartjs-plugin-trendline'; ``` #### Node.js with CommonJS The CommonJS build is automatically used when using `require()`: ```javascript const ChartJSTrendline = require('chartjs-plugin-trendline'); ``` #### Browser via CDN The global export name has changed: **Before:** ```html ``` **After:** ```html ``` ## Benefits ### For Modern Projects - ✅ Better tree-shaking support - ✅ Faster build times with Vite, SvelteKit, and modern bundlers - ✅ Full ESM support - ✅ Smaller bundle sizes (only import what you need) ### For Legacy Projects - ✅ Backward compatible with CommonJS - ✅ UMD builds still available for browser ` ``` ## Technical Details ### Package.json Configuration ```json { "type": "module", "main": "./dist/chartjs-plugin-trendline.cjs", "module": "./dist/chartjs-plugin-trendline.esm.js", "exports": { ".": { "import": "./dist/chartjs-plugin-trendline.esm.js", "require": "./dist/chartjs-plugin-trendline.cjs" } } } ``` This ensures: - Modern bundlers use the ESM version - Node.js `require()` uses the CommonJS version - Maximum compatibility across environments ## Questions? If you encounter any issues during migration, please [open an issue](https://github.com/Makanz/chartjs-plugin-trendline/issues) on GitHub.