chartjs / Chart.js

Simple HTML5 Charts using the <canvas> tag
https://www.chartjs.org/
MIT License
63.92k stars 11.89k forks source link

Framework-relate bug when importing adapters. #11709

Open mstonepc opened 3 months ago

mstonepc commented 3 months ago

Expected behavior

The adapter import should modify the correct chart.js instance.

Current behavior

When importing in a framework like ember, or react, because the package.json points requireJS to the ".cjs" file, and the import in those frameworks happens in node during build time, the adapter does not import the same chart instance, and therefore the adapter does not work.

Reproducible sample

https://github.com/chartjs/Chart.js/discussions/11376

Possible Solution

Perhaps both chart.js and chart.cjs in dist can target the same chart instance? I haven't dug too deep on how this is all setup right now. Does require really need the .cjs version?

chart.js version

v4

etimberg commented 3 months ago

This is likely because the Chart instance is just a global variable and there are two copies when two separate imports exist

eg271 commented 1 month ago

Am trying to use a chartjs plugin (chartjs-financial) and the same code that works perfectly in a simple non-framework app gives an error that it can't find the required controller (candlestick in this case) when using Ember. So, perhaps this is caused by the same error - is there a workaround right now?