a development server for rollup
compared to other plugins, this plugin:
extend
option below!)npm install --save-dev rollup-plugin-dev
pnpm add --save-dev rollup-plugin-dev
import dev from 'rollup-plugin-dev'
export default {
plugins: [
dev()
]
}
directories to serve static files from
example: dev('dist')
example: dev({ dirs: ['dist', 'lib'] })
default: __dirname
when no other options are needed, a shortcut is available to specify one folder
prefix all served files with a base path - e.g. serve from /static
instead of /
example: dev({ basePath: '/static' })
default: /
will silence all log messages, as well as the warning printed when rollup is started outside of watch mode
example: dev({ silent: true })
default: false
proxy a path to an upstream service
example: dev({ proxy: [{ from: '/api', to: 'http://localhost:9000/resources' }] })
example: dev({ proxy: [{ from: '/api', to: 'http://localhost:9000/resources', opts: { preHandler: myPreHandler } }] })
default: undefined
opts
can contain any valid options for fastify-http-proxy
serve a fallback page (for single-page apps)
example: dev({ spa: true }) // will serve index.html
example: dev({ spa: 'path/to/fallback.html' })
default: false
if a path is provided, it should be relative to one of the dirs
being served
the fallback file must reside in one of the dirs
being served
the port the server should listen on
example: dev({ port: 3000 })
default: 8080
the server will automatically listen on the first available port after 8080 if the specified/default port is taken
the host the server should listen on
example: dev({ host: '0.0.0.0' })
default: localhost
force the server to start, even if rollup isn't in watch mode
example: dev({ force: true })
default: false
the path to resolve any relative dirs
from
example: dev({ dirname: '/Users/MyUser/Development/my-project' })
default: undefined
this is generally not needed if one is running Rollup from package.json's scripts
modify options the Fastify server is booted with - accepts any valid Fastify server attribute
example: dev({ server: { connectionTimeout: 3000 } })
default: see config.js
and the serverDefaults
export
here be dragons - because modifying these options can wildly change server behavior, this is supported on an 'as is' basis only
enables full customization of the dev server, expects a Fastify plugin
example: dev({ extend: fp(async (server) => server.register(myPlugin)) })
default: undefined
this is a callback that runs after the server has started
example: dev({ onListen(server) { server.log.info('Hello world') }
default: undefined