UNPKG

2.08 kBJavaScriptView Raw
1import babel from 'rollup-plugin-babel';
2import commonjs from 'rollup-plugin-commonjs';
3import replace from 'rollup-plugin-replace';
4import resolve from 'rollup-plugin-node-resolve';
5import {uglify} from 'rollup-plugin-uglify';
6
7import pkg from './package.json';
8
9function distBuild(options) {
10 options = options || {};
11
12 return {
13 input: 'src/index.js',
14 output: {
15 file: `dist/${options.filename}`,
16 format: options.format,
17 name: 'aphrodite',
18 sourcemap: options.sourcemap,
19 },
20 plugins: [
21 babel({
22 exclude: ['node_modules/**'],
23 }),
24 replace({
25 'process.env.NODE_ENV': JSON.stringify('production'),
26 }),
27 resolve({
28 browser: true,
29 }), // so rollup can find node modules
30 commonjs(), // so rollup can convert node modules to ESM if needed
31 options.minify && uglify(),
32 ]
33 };
34}
35
36const externals = new Set(Object.keys(pkg.dependencies));
37externals.delete('inline-style-prefixer');
38
39function standardBuilds() {
40 return {
41 input: ['src/index.js', 'src/no-important.js'],
42 external: (id /*: string */) => {
43 if (externals.has(id)) {
44 return true;
45 }
46 },
47 output: [
48 { dir: 'lib', format: 'cjs' },
49 { dir: 'es', format: 'es' },
50 ],
51 plugins: [
52 babel({
53 exclude: ['node_modules/**'],
54 }),
55 resolve({
56 browser: true,
57 }), // so rollup can find node modules
58 commonjs(), // so rollup can convert node modules to ESM if needed
59 ],
60 };
61}
62
63export default [
64 distBuild({ filename: 'aphrodite.umd.js', format: 'umd', sourcemap: true, minify: false }),
65 distBuild({ filename: 'aphrodite.umd.min.js', format: 'umd', sourcemap: true, minify: true }),
66 distBuild({ filename: 'aphrodite.js', format: 'cjs', sourcemap: false, minify: false }),
67 standardBuilds(),
68];