-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathrollup.config.js
76 lines (73 loc) · 2.07 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
const { nodeResolve } = require('@rollup/plugin-node-resolve');
const typescript = require('rollup-plugin-typescript2');
const url = require('postcss-url');
const postcss = require('rollup-plugin-postcss');
const copy = require('rollup-plugin-copy');
const del = require('rollup-plugin-delete');
const filesize = require('rollup-plugin-filesize');
const { terser } = require('rollup-plugin-terser');
const path = require('path');
const packageJson = require('./package.json');
const { visualizer } = require('rollup-plugin-visualizer');
const localIdent = require('./localIdent');
const format = 'es';
/**
* @type {import('rollup').RollupOptions}
*/
const configBase = {
input: 'src/index.ts',
external: ['react', 'react-dom', 'clsx'],
output: {
dir: './dist',
format,
sourcemap: true,
},
plugins: [
del({ targets: 'dist/*' }),
nodeResolve({
moduleDirectories: ['node_modules'],
}),
typescript({
typescript: require('typescript'),
tsconfigDefaults: {
compilerOptions: {
plugins: [
{ transform: 'typescript-transform-paths' },
{ transform: 'typescript-transform-paths', afterDeclarations: true },
],
},
},
}),
postcss({
extensions: ['.css', '.scss'], // Поддержка CSS и SCSS
modules: {
generateScopedName: function (name, filename) {
const file = path.basename(filename, '.scss');
return localIdent.generateCssClassName(file, name);
},
},
extract: path.resolve('dist/styles.css'), // Сбор всех стилей в один файл
minimize: true,
use: {
sass: true,
},
plugins: [
url({
url: 'inline', // для svg иконок, чтобы не создавать лишние файлы
}),
],
}),
terser(),
copy({
targets: [
{
src: ['src/styles'],
dest: 'dist',
},
],
}),
filesize(),
process.env.ANALYZE === 'true' && visualizer(),
],
};
module.exports = [configBase];