UNPKG

react-use-motion-measure

Version:

measure view bounds

50 lines (45 loc) 1.55 kB
import path from 'path' import babel from 'rollup-plugin-babel' import resolve from 'rollup-plugin-node-resolve' import json from 'rollup-plugin-json' import { sizeSnapshot } from 'rollup-plugin-size-snapshot' const root = process.platform === 'win32' ? path.resolve('/') : '/' const external = (id) => !id.startsWith('.') && !id.startsWith(root) const extensions = ['.js', '.jsx', '.ts', '.tsx', '.json'] const getBabelOptions = ({ useESModules }, targets) => ({ babelrc: false, extensions, exclude: '**/node_modules/**', runtimeHelpers: true, presets: [ ['@babel/preset-env', { loose: true, modules: false, targets }], '@babel/preset-react', '@babel/preset-typescript', ], plugins: [ ['transform-react-remove-prop-types', { removeImport: true }], ['@babel/transform-runtime', { regenerator: false, useESModules }], ], }) function createConfig(entry, out) { return [ { input: `./src/${entry}/index`, output: { file: `dist/${out}.js`, format: 'esm' }, external, plugins: [ json(), babel(getBabelOptions({ useESModules: true }, '>1%, not dead, not ie 11, not op_mini all')), sizeSnapshot(), resolve({ extensions }), ], }, { input: `./src/${entry}/index`, output: { file: `dist/${out}.cjs.js`, format: 'cjs', exports: 'default' }, external, plugins: [json(), babel(getBabelOptions({ useESModules: false })), sizeSnapshot(), resolve({ extensions })], }, ] } export default [...createConfig('web', 'web')]