react-video-scroll-ssr
Version:
A React component to seek or control the video frame rate on scroll.
54 lines (49 loc) • 1.32 kB
JavaScript
import babel from 'rollup-plugin-babel'
import uglify from 'rollup-plugin-uglify'
import replace from 'rollup-plugin-replace'
import pkg from './package.json'
const makeExternalPredicate = externalArr => {
if (externalArr.length === 0) {
return () => false;
}
const pattern = new RegExp(`^(${externalArr.join("|")})($|/)`);
return id => pattern.test(id);
}
const ensureArray = maybeArr => Array.isArray(maybeArr) ? maybeArr : [maybeArr]
const createConfig = ({
output,
min = false,
env,
} = {}) => ({
input: 'src/VideoScroll.js',
output: ensureArray(output).map(format => Object.assign({}, format, {
name: 'VideoScroll',
exports: 'named',
globals: {
react: 'React',
'prop-types': 'PropTypes',
},
})),
external: makeExternalPredicate([
...Object.keys(pkg.dependencies || {}),
...Object.keys(pkg.peerDependencies || {}),
]),
plugins: [
babel({ plugins: ['external-helpers'] }),
env && replace({ 'process.env.NODE_ENV': JSON.stringify(env) }),
min && uglify(),
].filter(Boolean),
})
export default [
createConfig({
output: [
{ file: pkg.main, format: 'cjs' },
{ file: pkg.module, format: 'es' },
],
}),
createConfig({
output: { file: pkg.unpkg, format: 'umd' },
env: 'production',
min: true,
})
]