-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.js
89 lines (82 loc) · 1.99 KB
/
rollup.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import pugAsJsx from 'rollup-plugin-pug-as-jsx';
import typescript from 'rollup-plugin-typescript2';
import babel from 'rollup-plugin-babel';
import postcss from 'rollup-plugin-postcss';
import { uglify } from 'rollup-plugin-uglify';
import tailwindcss from 'tailwindcss';
import postcssFlexbugsFixes from 'postcss-flexbugs-fixes';
import postcssPresetEnv from 'postcss-preset-env';
import nodeResolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
const pkg = require('./package.json');
const entry = 'src/core';
// const external = Object.keys(pkg.dependencies);
const external = id => !id.startsWith('.') && !id.startsWith('/');
const rollupConfig = {
input: `${entry}/index.ts`,
plugins: [
pugAsJsx({
resolve: {
classnames: 'cx',
},
}),
typescript({
// https://github.com/ezolenko/rollup-plugin-typescript2
clean: true,
objectHashIgnoreUnknownHack: true,
useTsconfigDeclarationDir: true,
tsconfigOverride: {
compilerOptions: {
declaration: true,
declarationDir: 'dist',
allowJs: false,
isolatedModules: false,
},
include: [entry],
},
}),
babel({
runtimeHelpers: true,
presets: [ '@babel/preset-react'],
// plugins: ['@babel/transform-runtime'],
extensions: ['.js', '.jsx', '.ts', '.tsx'],
}),
postcss({
plugins: [
tailwindcss(),
postcssFlexbugsFixes,
postcssPresetEnv({
autoprefixer: {
flexbox: 'no-2009',
},
stage: 3,
}),
],
}),
nodeResolve({
extensions: ['.js', '.jsx', '.ts', '.tsx'],
}),
commonjs(),
],
external,
};
const cjsConfig = {
...rollupConfig,
output: {
file: pkg.main,
format: 'cjs',
sourcemap: true,
},
};
const esConfig = {
...rollupConfig,
output: {
file: pkg.module,
format: 'es',
sourcemap: true,
},
};
export default [
cjsConfig,
esConfig,
];