X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/3eda144903d23a7a615274d342f06c0e227fb5c3..750760c197445437381b2d1e24c00419d928d39c:/rollup.config.js diff --git a/rollup.config.js b/rollup.config.js index 90da3f7..757a22d 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -3,74 +3,86 @@ 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 { spawn } from 'child_process'; import css from 'rollup-plugin-css-only'; +import { readFileSync, writeFileSync } from 'fs'; const production = !process.env.ROLLUP_WATCH; function serve() { - let server; + let server; - function toExit() { - if (server) server.kill(0); - } + function toExit() { + if (server) server.kill(0); + } - return { - writeBundle() { - if (server) return; - server = require('child_process').spawn('yarn', ['start', '-d'], { - stdio: ['ignore', 'inherit', 'inherit'], - shell: true - }); + return { + writeBundle() { + if (server) return; + server = spawn('yarn', ['start', '-d'], { + stdio: ['ignore', 'inherit', 'inherit'], + shell: true + }); - process.on('SIGTERM', toExit); - process.on('exit', toExit); - } - }; + process.on('SIGTERM', toExit); + process.on('exit', toExit); + } + }; } export default { - input: 'src/main.js', - output: { - sourcemap: true, - format: 'iife', - name: 'app', - file: 'dist/build/bundle.js' - }, - plugins: [ - svelte({ - 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' }), + input: 'src/main.js', + output: { + sourcemap: true, + format: 'iife', + name: 'app', + file: 'dist/build/bundle.js' + }, + plugins: [ + svelte({ + compilerOptions: { + // enable run-time checks when not in production + dev: !production + } + }), + css({ + // output: function (styles, styleNodes) { + output: function (styles) { + // make sure global_styles.css gets appended to bundle.css, + // not prepended. + // The ':global()' rules (https://svelte.dev/docs#style) get + // prepended so we can't use them to overwrite bootstrap.css + // rules + let global_styles = readFileSync('src/global_style.css'); + styles += global_styles; + writeFileSync('dist/build/bundle.css', styles); + } + }), - // 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(), + // 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(), - // In dev mode, call `npm run start` once - // the bundle has been generated - !production && serve(), + // In dev mode, call `npm run start` once + // the bundle has been generated + !production && serve(), - // Watch the `dist` directory and refresh the - // browser on changes when not in production - !production && livereload('dist'), + // Watch the `dist` directory and refresh the + // browser on changes when not in production + !production && livereload('dist'), - // If we're building for production (npm run build - // instead of npm run dev), minify - production && terser() - ], - watch: { - clearScreen: false - } + // If we're building for production (npm run build + // instead of npm run dev), minify + production && terser() + ], + watch: { + clearScreen: false + } };