diff --git a/auto/auto.esm.js b/auto/auto.esm.js deleted file mode 100644 index 8111b89a896..00000000000 --- a/auto/auto.esm.js +++ /dev/null @@ -1,5 +0,0 @@ -import {Chart, registerables} from '../dist/chart.esm.js'; - -Chart.register(...registerables); - -export default Chart; diff --git a/auto/auto.mjs b/auto/auto.mjs new file mode 100644 index 00000000000..95d0a9a92de --- /dev/null +++ b/auto/auto.mjs @@ -0,0 +1,5 @@ +import {Chart, registerables} from '../dist/chart.mjs'; + +Chart.register(...registerables); + +export default Chart; diff --git a/auto/auto.esm.d.ts b/auto/auto.mts similarity index 100% rename from auto/auto.esm.d.ts rename to auto/auto.mts diff --git a/auto/package.json b/auto/package.json index c2ad5b2caf4..5f89c8f903f 100644 --- a/auto/package.json +++ b/auto/package.json @@ -3,6 +3,6 @@ "private": true, "description": "auto registering package", "main": "auto.js", - "module": "auto.esm.js", - "types": "auto.esm.d.ts" + "module": "auto.mjs", + "types": "auto.mts" } diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 77d1d19d971..142122bc3be 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -94,7 +94,7 @@ module.exports = { config.merge({ resolve: { alias: { - 'chart.js': path.resolve(__dirname, '../../dist/chart.esm.js'), + 'chart.js': path.resolve(__dirname, '../../dist/chart.mjs'), } } }) diff --git a/docs/scripts/components.js b/docs/scripts/components.js index 5ed77b6afb9..9334eb2d72f 100644 --- a/docs/scripts/components.js +++ b/docs/scripts/components.js @@ -1,3 +1,3 @@ // Add Chart components needed in samples here. // Usable through `components[name]`. -export {Tooltip} from '../../dist/chart.esm'; +export {Tooltip} from '../../dist/chart.mjs'; diff --git a/docs/scripts/helpers.js b/docs/scripts/helpers.js index b7c92c5acac..39d60b68b1f 100644 --- a/docs/scripts/helpers.js +++ b/docs/scripts/helpers.js @@ -1,4 +1,3 @@ // Add helpers needed in samples here. // Usable through `helpers[name]`. -export {color, getHoverColor, easingEffects} from '../../dist/helpers.esm'; - +export {color, getHoverColor, easingEffects} from '../../dist/helpers.mjs'; diff --git a/docs/scripts/register.js b/docs/scripts/register.js index 43f0ebcdba7..675f6443a40 100644 --- a/docs/scripts/register.js +++ b/docs/scripts/register.js @@ -1,4 +1,4 @@ -import {Chart, registerables} from '../../dist/chart.esm'; +import {Chart, registerables} from '../../dist/chart.mjs'; import Log2Axis from './log2'; import './derived-bubble'; import analyzer from './analyzer'; diff --git a/docs/scripts/utils.js b/docs/scripts/utils.js index 59a07d7ebe3..eab68e5f006 100644 --- a/docs/scripts/utils.js +++ b/docs/scripts/utils.js @@ -1,7 +1,7 @@ import colorLib from '@kurkle/color'; import {DateTime} from 'luxon'; import 'chartjs-adapter-luxon'; -import {valueOrDefault} from '../../dist/helpers.esm'; +import {valueOrDefault} from '../../dist/helpers.mjs'; // Adapted from http://indiegamr.com/generate-repeatable-random-numbers-in-js/ var _seed = Date.now(); diff --git a/helpers/helpers.esm.js b/helpers/helpers.mjs similarity index 100% rename from helpers/helpers.esm.js rename to helpers/helpers.mjs diff --git a/helpers/helpers.esm.d.ts b/helpers/helpers.mts similarity index 100% rename from helpers/helpers.esm.d.ts rename to helpers/helpers.mts diff --git a/helpers/package.json b/helpers/package.json index d97b75cbfba..668b05e7007 100644 --- a/helpers/package.json +++ b/helpers/package.json @@ -3,6 +3,6 @@ "private": true, "description": "helper package", "main": "helpers.js", - "module": "helpers.esm.js", - "types": "helpers.esm.d.ts" + "module": "helpers.mjs", + "types": "helpers.mts" } \ No newline at end of file diff --git a/package.json b/package.json index 0f98b7f8c74..fb2f438aab2 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "jsdelivr": "dist/chart.min.js", "unpkg": "dist/chart.min.js", "main": "dist/chart.js", - "module": "dist/chart.esm.js", + "module": "dist/chart.mjs", "types": "types/index.esm.d.ts", "keywords": [ "canvas", @@ -25,16 +25,10 @@ "url": "https://github.com/chartjs/Chart.js/issues" }, "files": [ - "auto/package.json", - "auto/**/*.js", - "auto/**/*.d.ts", - "dist/*.js", - "dist/chunks/*.js", - "types/*.d.ts", - "types/helpers/*.d.ts", - "helpers/package.json", - "helpers/**/*.js", - "helpers/**/*.d.ts" + "auto/**", + "dist/**", + "types/**", + "helpers/**" ], "scripts": { "autobuild": "rollup -c -w", diff --git a/rollup.config.js b/rollup.config.js index 6f05bff34a7..4d88bcf16f2 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -6,10 +6,6 @@ const terser = require('rollup-plugin-terser').terser; const pkg = require('./package.json'); const input = 'src/index.js'; -const inputESM = { - 'dist/chart.esm': 'src/index.esm.js', - 'dist/helpers.esm': 'src/helpers/index.js' -}; const banner = `/*! * Chart.js v${pkg.version} @@ -60,10 +56,38 @@ module.exports = [ }, // ES6 builds + // dist/chart.mjs + // helpers/*.js + { + input: { + 'dist/chart': 'src/index.esm.js', + 'dist/helpers': 'src/helpers/index.js' + }, + plugins: [ + json(), + resolve(), + cleanup({ + sourcemap: true + }), + ], + output: { + dir: './', + chunkFileNames: 'dist/chunks/[name].mjs', + entryFileNames: '[name].mjs', + banner, + format: 'esm', + indent: false, + }, + }, + + // Legacy ES6 builds for backwards compatibility. Remove for Chart.js 4.0 // dist/chart.esm.js // helpers/*.js { - input: inputESM, + input: { + 'dist/chart.esm': 'src/index.esm.js', + 'dist/helpers.esm': 'src/helpers/index.js' + }, plugins: [ json(), resolve(),