diff --git a/package.json b/package.json index ccc90e9..dd15db1 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "scripts": { "prebuild": "npm run fix", - "build": "rollup ./src/index.js -c", + "build": "rm -rf dist && rollup ./src/index.js -c", "prepare": "npm run build", "test": "npm run test:lint && npm run test:build", "test:build": "npm run build", diff --git a/rollup.config.js b/rollup.config.js index 467414d..daa7a4b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,11 +1,42 @@ -import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import { babel } from '@rollup/plugin-babel'; import eslint from '@rollup/plugin-eslint'; -import { terser } from "rollup-plugin-terser"; -import analyze from 'rollup-plugin-analyzer' +import { terser } from 'rollup-plugin-terser'; +import analyze from 'rollup-plugin-analyzer'; +import { nodeResolve } from '@rollup/plugin-node-resolve'; + +const plugins = [ + !process.env.NOLINT && + eslint({ + include: 'src/**/*.js', + exclude: 'node_modules/**', + }), + babel({ + include: 'src/**', + exclude: 'node_modules/**', + extensions: ['.js'], + babelHelpers: 'runtime', + presets: ['@babel/env', '@babel/preset-react'], + plugins: ['@babel/plugin-transform-runtime'], + }), + commonjs(), + terser(), + analyze({ + stdout: true, + summaryOnly: true, + }), +]; -export default { +const external = [ + '@babel/runtime', + '@kitware/vtk.js', + 'prop-types', + 'react', + 'regenerator-runtime', +]; + +export default [ + { input: 'src/index.js', output: [ { @@ -14,18 +45,25 @@ export default { preserveModules: true, preserveModulesRoot: 'src', }, + { + file: 'dist/cjs/react-vtk.js', + format: 'cjs', + }, + ], + external, + plugins, + }, + { + input: 'src/index.js', + output: [ { file: 'dist/umd/react-vtk.js', format: 'umd', exports: 'named', name: 'ReactVtkJS', }, - { - file: 'dist/cjs/react-vtk.js', - format: 'cjs', - }, ], - external: ['react', 'prop-types'], + external, plugins: [ nodeResolve({ // include: 'node_modules/**', @@ -33,24 +71,7 @@ export default { preferBuiltins: false, browser: true, }), - !process.env.NOLINT && - eslint({ - include: 'src/**/*.js', - exclude: 'node_modules/**', - }), - babel({ - include: 'src/**', - exclude: 'node_modules/**', - extensions: ['.js'], - babelHelpers: 'runtime', - presets: ['@babel/env', '@babel/preset-react'], - plugins:['@babel/plugin-transform-runtime'], - }), - commonjs(), - terser(), - analyze({ - stdout: true, - summaryOnly: true, - }), + ...plugins, ], -}; + }, +];