1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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
- // eslint-disable-next-line global-require
- server = require('node:child_process').spawn('npm', ['run', 'serve', '--', '--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({
- postcss: true,
- }),
- 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', '@uppy/core'],
- }),
- 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,
- },
- }
|