mirror of
https://github.com/mediacms-io/mediacms.git
synced 2024-12-04 22:20:49 +01:00
aa6520daac
* Added frontend development files/environment * More items-categories related removals * Improvements in pages templates (inc. static pages) * Improvements in video player * Added empty home page message + cta * Updates in media, playlist and management pages * Improvements in material icons font loading * Replaced media & playlists links in frontend dev-env * frontend package version update * chnaged frontend dev url port * static files update * Changed default position of theme switcher * enabled frontend docker container
114 lines
2.8 KiB
JavaScript
Executable File
114 lines
2.8 KiB
JavaScript
Executable File
import gzip from 'rollup-plugin-gzip';
|
|
import postcss from 'rollup-plugin-postcss';
|
|
import babel from 'rollup-plugin-babel';
|
|
import cleanup from 'rollup-plugin-cleanup';
|
|
// import { uglify } from "rollup-plugin-uglify";
|
|
import commonjs from '@rollup/plugin-commonjs';
|
|
import resolve from '@rollup/plugin-node-resolve';
|
|
import visualizer from 'rollup-plugin-visualizer';
|
|
import json from '@rollup/plugin-json';
|
|
|
|
export default function rollup_builds(input_file, output_folder, pkg) {
|
|
const package_name = pkg.name;
|
|
|
|
const dependencies = pkg.dependencies;
|
|
const dependencies_names = !!dependencies ? Object.keys(pkg.dependencies) : [];
|
|
|
|
const esm_format = 'es';
|
|
const browser_format = 'umd';
|
|
const commonjs_format = 'cjs';
|
|
|
|
const postcss_config = {
|
|
extract: true,
|
|
modules: false, // Avoid adding prefixes to classnames (etc).
|
|
extensions: ['.css', '.sss', '.pcss', '.scss'],
|
|
};
|
|
|
|
const postcss_plugin = postcss(postcss_config);
|
|
const postcss_plugin_minimized = postcss({ ...postcss_config, minimize: true });
|
|
|
|
const commonjs_resolve_config = {
|
|
// pass custom options to the resolve plugin
|
|
customResolveOptions: { moduleDirectory: 'node_modules' },
|
|
};
|
|
|
|
function beautify_plugin() {
|
|
return cleanup(/*{
|
|
maxEmptyLines: 1,
|
|
sourcemap: false,
|
|
}*/);
|
|
}
|
|
|
|
function visualizer_plugin(name) {
|
|
return visualizer({
|
|
title: name,
|
|
filename: output_folder + '/visualizer/' + name + '.html',
|
|
});
|
|
}
|
|
|
|
function es_build(filename, visualize, bundle) {
|
|
const plugins = [postcss_plugin, json(), beautify_plugin()];
|
|
|
|
if (!!visualize) {
|
|
plugins.push(visualizer_plugin(filename));
|
|
}
|
|
|
|
return {
|
|
input: input_file,
|
|
external: !!bundle ? {} : dependencies_names,
|
|
output: [{ format: esm_format, file: filename }],
|
|
plugins: plugins,
|
|
};
|
|
}
|
|
|
|
function commonjs_build(filename, visualize, bundle) {
|
|
const plugins = [postcss_plugin, json(), resolve(commonjs_resolve_config), beautify_plugin()];
|
|
|
|
if (!!visualize) {
|
|
plugins.push(visualizer_plugin(filename));
|
|
}
|
|
|
|
return {
|
|
input: input_file,
|
|
external: !!bundle ? {} : dependencies_names,
|
|
output: [{ format: commonjs_format, file: filename }],
|
|
plugins: plugins,
|
|
};
|
|
}
|
|
|
|
function browser_build(filename, visualize, minimize, compact) {
|
|
const plugins = [
|
|
!!minimize ? postcss_plugin_minimized : postcss_plugin,
|
|
json(),
|
|
babel(),
|
|
resolve(),
|
|
commonjs(),
|
|
beautify_plugin(),
|
|
];
|
|
|
|
if (!!minimize) {
|
|
// plugins.push( uglify() );
|
|
|
|
if (!!compact) {
|
|
plugins.push(gzip());
|
|
}
|
|
}
|
|
|
|
if (!!visualize) {
|
|
plugins.push(visualizer_plugin(filename));
|
|
}
|
|
|
|
return {
|
|
input: input_file,
|
|
output: { name: package_name, format: browser_format, file: filename },
|
|
plugins: plugins,
|
|
};
|
|
}
|
|
|
|
return Object.freeze({
|
|
es: es_build,
|
|
browser: browser_build,
|
|
commonjs: commonjs_build,
|
|
});
|
|
}
|