Skip to content

Instantly share code, notes, and snippets.

@joduplessis
Created September 11, 2017 21:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joduplessis/6bc0fd09f0910861052027439d08054f to your computer and use it in GitHub Desktop.
Save joduplessis/6bc0fd09f0910861052027439d08054f to your computer and use it in GitHub Desktop.
Example Rollup config file for building React components using Typescript.
import React from 'react';
import * as ReactDOM from 'react-dom';
export default class HQueue extends React.Component<any, any> {
constructor(props: any) {
super(props);
}
public componentDidMount() {
}
public render() {
return (
<div>
Hello world!
</div>
)
}
}
// We call it like this ->
// ReactDOM.render(<HQueue />, document.getElementById('app'));
/*
* Example Rollup config file for building React components using Typescript.
* Compile using 'rollup -c'
*/
var typescript = require('rollup-plugin-typescript');
var ts = require('typescript');
var resolve = require('rollup-plugin-node-resolve');
var commonjs = require('rollup-plugin-commonjs');
var replace = require('rollup-plugin-replace');
var uglify = require('rollup-plugin-uglify');
var buble = require('rollup-plugin-buble');
module.exports = {
entry: 'src/index.tsx',
dest: 'dist/index.js',
format: 'iife',
moduleName: 'supercoolnamehere',
plugins: [
replace({
'process.env.NODE_ENV': JSON.stringify( 'production' )
}),
typescript({
target: "es2015",
jsx: "react"
}),
resolve({
jsnext: true,
main: true,
browser: true
}),
buble(),
commonjs({
include: [
'node_modules/**'
],
namedExports: {
'node_modules/react/react.js': ['Children', 'Component', 'PropTypes', 'createElement'],
'node_modules/react-dom/index.js': ['render']
}
}),
uglify()
]
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment