devito is a fast web dev server, inspired by vite.
It also uses esbuild.
devito my-file.tsx
The above will serve my-file.tsx
and will refresh on every change.
Allows opening file[:line[:col]]
links from the DevTools console output, right into your editor. Use --editor=<editor>
to set your own (defaults to code
).
import.meta.url
is transformed to <location.origin>/@fs/<path>
.
The relative base path /@fs/
is computed with --homedir=<path>
. It defaults to os.homedir()
.
// Worker
new Worker(new URL('./my-worker.js', import.meta.url).href, { type: 'module' })
// AudioWorklet
audioContext.audioWorklet.addModule(
new URL('./my-audio-worklet.js', import.meta.url).href
)
// iframe
const src = new URL('sandbox-iframe.js', import.meta.url).href
iframe.srcdoc = `<script src="${src}" type="module"></script>`
import 'some.css'
Statically bundled modules will bundle all css to bundle.css
.
Dynamically discovered modules (such when using import()
) will create a <style>
element and it'll be appended in <head>
.
import json from 'some.json'
// @jsxImportSource jsx-lib
tsconfig.json
:
"compilerOptions": {
...
"jsx": "react-jsx",
...
}
devito README.md
To enable browser caching in order to get all the speed benefits, you'll need to create a certificate.
devito will try to find a cert+key for devito.test
under
process.env.SSL_CERTS_DEVITO
, ~/.ssl-certs/
or using --cert=xxx
(minus the -key.pem
and .pem
suffixes).
mkcert -install
mkcert devito.test
cp devito.test* ~/.ssl-certs/
Then add an entry 127.0.0.1 devito.test
in /etc/hosts
.
Chrome/Firefox should now cache assets properly for that location.
More info here: https://jonathanbossenger.com/2019/02/08/setting-up-trusted-ssl-certificates-for-local-development-using-mkcert-on-ubuntu-18-04-with-apache/