Configuring react-d3 into a Rollup Build System
Rollup is a next generation bundling system that I’m using with react. There is a port of the d3 Javascript graphing library called react-d3. As with most cases where you put together a bunch of new technologies, there are configuration issues.
Here is how I include react-d3 into my rollup projects:
import React from 'react'
import { LineChart } from 'react-d3'
Then to make an actual graph:
export class GraphWidget extends React.Component
{
constructor( props ) { super( props ); }
render()
{
var width = 700,
height = 300,
margins = {left: 100, right: 100, top: 50, bottom: 50},
title = "Events",
x = function( d ) { return d.index; };
var lineData =
[
{
name: "series1",
values: [ { x: 0, y: 20 }, { x: 24, y: 10 } ]
},
{
name: "series2",
values: [ { x: 70, y: 82 }, { x: 76, y: 82 } ]
}
];
return ( <LineChart
title = {title}
width = {width}
height = {height}
margins = {margins}
data = {lineData}
x = {x}
/>
);
}
}
React-D3 breaks with Use Strict
The current version of d3, and react-d3 depends on having access to “this”. The default build with babel is to use strict, which eliminates the global this, and will break react-d3.
There is a lot of discussion on the web about ways to turn off use strict in plain babel environments, and with more popular packagers like webpack and browserify. Here is how I solved this for my rollup environment.
First install:
npm install rollup-plugin-post-replace
This is just like the common plugin rollup-plugin-replace except that it runs after bundling.
Then in rollup.config.js:
var postReplaceConfig =
{
'"use strict";': '',
"'use strict';": ''
};
var config =
{
plugins:
[
postReplace ( postReplaceConfig ),
]
}
Resources
| ReactD3 | Main page for the ReactD3 project |
| RollupJs | Main page for the RollupJs project |
| Babel | Main page for the Babel JS transpiler project |
| React | Main page for the React JS framework |
| rollup-plugin-post-replace | A rollup plugin to replace text after bundling |
| How to remove global “use strict” added by babel | StackOverflow answer about how to do this with plain babel. |
A Bets Nacional Apostas (Bet Nacional) tem uma variedade enorme de apostas! De futebol a e-sports, tem de tudo! Dá pra se divertir e quem sabe até ganhar uma grana! Confira as opções: bets nacional apostas