mirror of
https://github.com/mediacms-io/mediacms.git
synced 2024-12-01 20:55:06 +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
112 lines
3.3 KiB
JavaScript
Executable File
112 lines
3.3 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,
|
|
});
|
|
}
|