Skip to content
Snippets Groups Projects
Select Git revision
  • 2c2972eb79f0ac59fce7c26746a2300f828af07b
  • main default protected
2 results

CMakeLists.txt

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    rollup.config.js 2.03 KiB
    import svelte from 'rollup-plugin-svelte';
    import commonjs from '@rollup/plugin-commonjs';
    import resolve from '@rollup/plugin-node-resolve';
    import livereload from 'rollup-plugin-livereload';
    import { terser } from 'rollup-plugin-terser';
    import sveltePreprocess from 'svelte-preprocess';
    import typescript from '@rollup/plugin-typescript';
    import css from 'rollup-plugin-css-only';
    
    const production = !process.env.ROLLUP_WATCH;
    
    function serve() {
    	let server;
    
    	function toExit() {
    		if (server) server.kill(0);
    	}
    
    	return {
    		writeBundle() {
    			if (server) return;
    			server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], {
    				stdio: ['ignore', 'inherit', 'inherit'],
    				shell: true
    			});
    
    			process.on('SIGTERM', toExit);
    			process.on('exit', toExit);
    		}
    	};
    }
    
    export default {
    	input: 'src/main.ts',
    	output: {
    		sourcemap: true,
    		format: 'iife',
    		name: 'app',
    		file: 'public/build/bundle.js'
    	},
    	plugins: [
    		svelte({
    			preprocess: sveltePreprocess({ sourceMap: !production }),
    			compilerOptions: {
    				// enable run-time checks when not in production
    				dev: !production
    			}
    		}),
    		// we'll extract any component CSS out into
    		// a separate file - better for performance
    		css({ output: 'bundle.css' }),
    
    		// If you have external dependencies installed from
    		// npm, you'll most likely need these plugins. In
    		// some cases you'll need additional configuration -
    		// consult the documentation for details:
    		// https://github.com/rollup/plugins/tree/master/packages/commonjs
    		resolve({
    			browser: true,
    			dedupe: ['svelte']
    		}),
    		commonjs(),
    		typescript({
    			sourceMap: !production,
    			inlineSources: !production
    		}),
    
    		// In dev mode, call `npm run start` once
    		// the bundle has been generated
    		!production && serve(),
    
    		// Watch the `public` directory and refresh the
    		// browser on changes when not in production
    		!production && livereload('public'),
    
    		// If we're building for production (npm run build
    		// instead of npm run dev), minify
    		production && terser()
    	],
    	watch: {
    		clearScreen: false
    	}
    };