Something went wrong. Try again.
Mirror: React hooks for accessible, common web interactions. UI super powers without the UI.
Something went wrong. Try again.
use-interactions rollup.config.js
2.6 kB · 119 lines
JavaScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120import commonjs from '@rollup/plugin-commonjs';import resolve from '@rollup/plugin-node-resolve';import typescript from 'rollup-plugin-typescript2';import buble from '@rollup/plugin-buble';import { terser } from 'rollup-plugin-terser';
const pkg = require('./package.json');
export const externalModules = ['dns', 'fs', 'path', 'url'];if (pkg.peerDependencies) externalModules.push(...Object.keys(pkg.peerDependencies));if (pkg.dependencies) externalModules.push(...Object.keys(pkg.dependencies));
const externalPredicate = new RegExp(`^(${externalModules.join('|')})($|/)`);
const config = { input: { [pkg.name]: './src/index.ts', }, onwarn() {}, external(id) { return externalPredicate.test(id); }, treeshake: { unknownGlobalSideEffects: false, tryCatchDeoptimization: false, moduleSideEffects: false, },};
const plugins = [ resolve({ extensions: ['.js', '.jsx', '.ts', '.tsx'], mainFields: ['module', 'jsnext', 'main'], preferBuiltins: false, browser: true, }),
commonjs({ ignoreGlobal: true, include: /\/node_modules\//, namedExports: {}, }),
typescript({ useTsconfigDeclarationDir: true, tsconfigOverride: { compilerOptions: { sourceMap: true, noEmit: false, declaration: true, declarationDir: './dist/types', target: 'esnext', }, }, }),
buble({ transforms: { unicodeRegExp: false, dangerousForOf: true, dangerousTaggedTemplateString: true, asyncAwait: false, }, objectAssign: 'Object.assign', }),
terser({ warnings: true, ecma: 5, keep_fnames: true, ie8: false, compress: { pure_getters: true, toplevel: true, booleans_as_integers: false, keep_fnames: true, keep_fargs: true, if_return: false, ie8: false, sequences: false, loops: false, conditionals: false, join_vars: false }, mangle: { module: true, keep_fnames: true, }, output: { beautify: true, braces: true, indent_level: 2 } }),];
const output = (format = 'cjs', extension = '.js') => ({ chunkFileNames: '[hash]' + extension, entryFileNames: '[name]' + extension, dir: './dist', exports: 'named', externalLiveBindings: false, sourcemap: true, esModule: false, indent: false, freeze: false, strict: false, format,});
export default [ { ...config, shimMissingExports: true, plugins, output: [output('esm', '.es.js'), output('cjs', '.js')], },];