51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
import path from 'path';
|
|
import fs from 'fs';
|
|
|
|
import resolve from '@rollup/plugin-node-resolve';
|
|
import commonjs from '@rollup/plugin-commonjs';
|
|
import postcss from 'postcss';
|
|
import clean from 'postcss-clean';
|
|
import copy from 'rollup-plugin-copy';
|
|
import terser from '@rollup/plugin-terser';
|
|
import sass from 'rollup-plugin-sass';
|
|
import css from 'rollup-plugin-css-only';
|
|
import { minify } from 'csso';
|
|
|
|
const config = {
|
|
input: 'src/js/main.js',
|
|
output: {
|
|
file: 'material/dist/bundle.js',
|
|
format: 'iife'
|
|
},
|
|
plugins: [
|
|
resolve({
|
|
browser: true
|
|
}),
|
|
commonjs(),
|
|
css({
|
|
output: function (styles) {
|
|
fs.writeFileSync(path.join('material', 'dist', 'lib.css'), minify(styles).css);
|
|
}
|
|
}),
|
|
sass({
|
|
output: true,
|
|
processor: css => postcss([clean])
|
|
.process(css, { from: undefined })
|
|
.then(result => result.css)
|
|
}),
|
|
process.env.NODE_ENV === 'production' ? terser() : null,
|
|
copy({
|
|
targets: [
|
|
{ src: 'src/assets/fonts', dest: 'material/dist' },
|
|
{ src: 'src/assets/img', dest: 'material/dist' },
|
|
{ src: 'node_modules/bootstrap/dist/fonts/*', dest: 'material/dist/fonts' }
|
|
]
|
|
})
|
|
],
|
|
watch: {
|
|
exclude: 'node_modules/**'
|
|
}
|
|
};
|
|
|
|
export default config;
|