From a200e0ff90770d8e9d4757129dd6d785204afda7 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Thu, 14 Jul 2022 14:54:15 -0700 Subject: [PATCH 1/4] Allow ESM files to be used in Node.js --- docs/.vuepress/config.js | 2 +- docs/scripts/components.js | 2 +- docs/scripts/helpers.js | 3 +-- docs/scripts/register.js | 2 +- docs/scripts/utils.js | 2 +- helpers/{helpers.esm.js => helpers.mjs} | 0 helpers/{helpers.esm.d.ts => helpers.mts} | 0 helpers/package.json | 4 ++-- package.json | 2 +- rollup.config.js | 9 +++++---- 10 files changed, 13 insertions(+), 13 deletions(-) rename helpers/{helpers.esm.js => helpers.mjs} (100%) rename helpers/{helpers.esm.d.ts => helpers.mts} (100%) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index e4fb3c1d188..50380e5fd19 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -86,7 +86,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 486c0213efb..4e742ada886 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", diff --git a/rollup.config.js b/rollup.config.js index 6f05bff34a7..74eddc8d485 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -7,8 +7,8 @@ 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' + 'dist/chart': 'src/index.esm.js', + 'dist/helpers': 'src/helpers/index.js' }; const banner = `/*! @@ -60,7 +60,7 @@ module.exports = [ }, // ES6 builds - // dist/chart.esm.js + // dist/chart.mjs // helpers/*.js { input: inputESM, @@ -73,7 +73,8 @@ module.exports = [ ], output: { dir: './', - chunkFileNames: 'dist/chunks/[name].js', + chunkFileNames: 'dist/chunks/[name].mjs', + entryFileNames: '[name].mjs', banner, format: 'esm', indent: false, From 08c63901a5b72298298055ac3819ffd5a5493cad Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 18 Jul 2022 09:47:04 -0700 Subject: [PATCH 2/4] output both file extensions via Rollup --- rollup.config.js | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index 74eddc8d485..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': 'src/index.esm.js', - 'dist/helpers': 'src/helpers/index.js' -}; const banner = `/*! * Chart.js v${pkg.version} @@ -63,7 +59,10 @@ module.exports = [ // dist/chart.mjs // helpers/*.js { - input: inputESM, + input: { + 'dist/chart': 'src/index.esm.js', + 'dist/helpers': 'src/helpers/index.js' + }, plugins: [ json(), resolve(), @@ -80,4 +79,28 @@ module.exports = [ indent: false, }, }, + + // Legacy ES6 builds for backwards compatibility. Remove for Chart.js 4.0 + // dist/chart.esm.js + // helpers/*.js + { + input: { + 'dist/chart.esm': 'src/index.esm.js', + 'dist/helpers.esm': 'src/helpers/index.js' + }, + plugins: [ + json(), + resolve(), + cleanup({ + sourcemap: true + }), + ], + output: { + dir: './', + chunkFileNames: 'dist/chunks/[name].js', + banner, + format: 'esm', + indent: false, + }, + }, ]; From ff6054a3a4f648b0841e6d6025f4c2ac63079bf3 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 18 Jul 2022 09:48:21 -0700 Subject: [PATCH 3/4] update auto --- auto/auto.esm.js | 5 ----- auto/auto.mjs | 5 +++++ auto/{auto.esm.d.ts => auto.mts} | 0 auto/package.json | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 auto/auto.esm.js create mode 100644 auto/auto.mjs rename auto/{auto.esm.d.ts => auto.mts} (100%) 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" } From e51ef5c30ed3321044e19de6895a151b96b95e52 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 26 Jul 2022 13:48:50 -0700 Subject: [PATCH 4/4] simplify files --- package.json | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 4e742ada886..80db2514d0a 100644 --- a/package.json +++ b/package.json @@ -25,14 +25,10 @@ "url": "https://github.com/chartjs/Chart.js/issues" }, "files": [ - "auto/**/*.js", - "auto/**/*.d.ts", - "dist/*.js", - "dist/chunks/*.js", - "types/*.d.ts", - "types/helpers/*.d.ts", - "helpers/**/*.js", - "helpers/**/*.d.ts" + "auto/**", + "dist/**", + "types/**", + "helpers/**" ], "scripts": { "autobuild": "rollup -c -w",