Integration
Chart.js can be integrated with plain JavaScript or with different module loaders. The examples below show how to load Chart.js in different systems.
Script Tag
<script src="path/to/chartjs/dist/Chart.js"></script>
<script>
var myChart = new Chart(ctx, {...});
</script>
Common JS
var Chart = require('chart.js');
var myChart = new Chart(ctx, {...});
Bundlers (Webpack, Rollup, etc.)
import Chart from 'chart.js';
var myChart = new Chart(ctx, {...});
Note: Moment.js is installed along Chart.js as dependency. If you don’t want to use Moment.js (either because you use a different date adapter or simply because don’t need time functionalities), you will have to configure your bundler to exclude this dependency (e.g. using externals
for Webpack or external
for Rollup).
// Webpack
{
externals: {
moment: 'moment'
}
}
// Rollup
{
external: {
['moment']
}
}
Require JS
Important: RequireJS can not load CommonJS module as is, so be sure to require one of the UMD builds instead (i.e. dist/Chart.js
, dist/Chart.min.js
, etc.).
require(['path/to/chartjs/dist/Chart.min.js'], function(Chart){
var myChart = new Chart(ctx, {...});
});
Note: starting v2.8, Moment.js is an optional dependency for Chart.js
and Chart.min.js
. In order to use the time scale with Moment.js, you need to make sure Moment.js is fully loaded before requiring Chart.js. You can either use a shim:
require.config({
shim: {
'chartjs': {
deps: ['moment'] // enforce moment to be loaded before chartjs
}
},
paths: {
'chartjs': 'path/to/chartjs/dist/Chart.min.js',
'moment': 'path/to/moment'
}
});
require(['chartjs'], function(Chart) {
new Chart(ctx, {...});
});
or simply use two nested require()
:
require(['moment'], function() {
require(['chartjs'], function(Chart) {
new Chart(ctx, {...});
});
});
Content Security Policy
By default, Chart.js injects CSS directly into the DOM. For webpages secured using Content Security Policy (CSP), this requires to allow style-src 'unsafe-inline'
. For stricter CSP environments, where only style-src 'self'
is allowed, the following CSS file needs to be manually added to your webpage:
<link rel="stylesheet" type="text/css" href="path/to/chartjs/dist/Chart.min.css">
And the style injection must be turned off before creating the first chart:
// Disable automatic style injection
Chart.platform.disableCSSInjection = true;