-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathrollup.config.js
47 lines (45 loc) · 1.39 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
import commonjs from '@rollup/plugin-commonjs';
import image from '@rollup/plugin-image';
import resolve from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';
import svgr from '@svgr/rollup';
import nodePolyfills from 'rollup-plugin-node-polyfills';
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
import postcss from 'rollup-plugin-postcss';
const defaultTsPluginOptions = {
composite: false,
exclude: ['**/*.stories.tsx', '**/*.test.ts', '**/*.test.tsx'],
tsconfig: 'src/tsconfig.json',
sourceMap: true,
inlineSources: true
}
export default ({
tsPluginOptions = defaultTsPluginOptions,
input = 'src/index.ts',
} = {}) => ({
external: [/node_modules/],
input,
plugins: [
resolve({
preferBuiltins: false,
}),
typescript({
...defaultTsPluginOptions,
...tsPluginOptions,
}),
peerDepsExternal(),
postcss({
// postcss plugin includes always path to the es version of the style-inject
// no matter what build type it is. It makes cjs build requiring esm version
// https://github.com/egoist/rollup-plugin-postcss/issues/381
// https://github.com/egoist/rollup-plugin-postcss/issues/367
inject: (cssVariableName) => `
import styleInject from 'style-inject';
styleInject(${cssVariableName});`,
}),
commonjs(),
nodePolyfills(),
image(),
svgr({ icon: true }),
],
});