1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| import typescript from 'typescript' import rollupTypescript from 'rollup-plugin-typescript' import nodeResolve from 'rollup-plugin-node-resolve' import commonjs from 'rollup-plugin-commonjs' import replace from 'rollup-plugin-replace' import serve from 'rollup-plugin-serve' import livereload from 'rollup-plugin-livereload' import uglify from 'rollup-plugin-uglify'
const dev = 'development' const prod = 'production'
function parseNodeEnv(nodeEnv) { if (nodeEnv === prod || nodeEnv === dev) { return nodeEnv } return dev }
const nodeEnv = parseNodeEnv(process.env.NODE_ENV) const exampleBasicPath = './example/' const exampleBundle = exampleBasicPath + '/bundle.js' const port = 3005
const plugins = [ replace({ 'process.env.NODE_ENV': JSON.stringify(nodeEnv) }), rollupTypescript({ typescript, importHelpers: true }) ]
const pluginsExample = plugins.concat([ nodeResolve(), commonjs({ include: 'node_modules/**', namedExports: { 'node_modules/react-dom/index.js': ['render'], 'node_modules/react/react.js': ['Component', 'PropTypes', 'createElement'] } }) ])
if (nodeEnv === dev) { pluginsExample.push( serve({ contentBase: './example/', port, historyApiFallback: true, open: true }) ) pluginsExample.push(livereload({ watch: exampleBundle })) }
if (nodeEnv === prod) { plugins.push(uglify()) }
export default [ { input: 'src/index.tsx', output: { file: 'dist/bundle.js', format: 'umd', name: 'TextScroll' }, watch: { include: './src/**' }, plugins }, { input: exampleBasicPath + 'index.tsx', output: { file: exampleBundle, format: 'iife', name: 'TextScroll' }, watch: { include: ['./src/**', exampleBasicPath + '**'] }, plugins: pluginsExample } ]
|