7.6 KiB
10.x
🎉
Breaking Changes
- Upgraded to
browserify@14 - The
--pushstateboolean argument should now come after entries in the CLI, as it supports subarg options. Using it before entries will still work but may log a warning. - Major overhaul to LiveReload backend to make it faster and more robust #194
- No longer uses
tiny-lror the old school LiveReload stuff, so it no longer supports some of the feature set from that tool - No longer supports the LiveReload browser plugin
- Budo runs everything on a single port/server instead of a second server for LiveReload
/budo/livereload.jsnow serves the LiveReload client
- No longer uses
Other Changes
opts.staticOptionsis now passed ontoserve-staticmoduleopts.pushstate(boolean or object) is now passed ontoconnect-pushstatemodule- CLI now supports subarg syntax for commands like
--static-optionsand--pushstate defaultIndexfunction now accepts areqas the second parameter
9.4.7
- Make HTTP logging more accurate: previously the time and byte size was not correct
9.4.5 .. 9.4.6
- Small tweaks to frontend build error styling
- Add
pushstateflag as a boolean so it doesn't swallow entry
9.4.3
- Disable cache control for
serve-static, I've found this greatly reduces load time - Slight change to
package.jsonscripts so they work on Windows
9.4.2
- Improve Windows terminal color support, fixes #179
9.4.0
- Improve build error parsing and rendering
9.3.0
- Add
force-default-indexto CLI #188
9.2.2
- Minimize XSS risks in URLs on 404 #182
9.2.0
- Improved
--corsflag in middleware stack #172
9.1.0
- Support
browserify: { entries: [] }in API options #167 - The
connectevent also returns aserverinstance, so you can use it with things like SocketIO
9.0.0
When --ssl is specified without a --cert and --key option, budo will use pem to generate a self-signed certificate. This is a breaking change from previous versions, but more convenient for most users.
Also updated docs with more SSL info.
8.4.0
Add --base flag for working with push state servers.
8.3.0
Bump to latest browserify.
8.2.2
Fix shorthand for --serve (-s).
8.2.0
Add support for SSL (HTTPS) with --ssl, --cert and --key options.
8.1.0
Add --cors flag to enable Access-Control-Allow-Origin: *
8.0.4
Bump required deps.
8.0.3
Fix opts.live as a string, allowing an array of options to be passed to filter file names.
8.0.2
Fix flow so that bundling events start after server connects, also updated upstream in watchify-middleware.
8.0.1
Fix parsing issue with LiveReload resp modifier.
8.0.0
The server code has been refactored to use connect/express-style middleware stacking. Fixes #80, #79, #124, #128.
Major Changes
Functions for opts.middleware now assumes the following signature, and will not behave differently based on the number of arguments you specify:
middleware(req, res, next)
Minor Changes
The middleware options can now be an array of functions, or a single function.
7.1.0
Added --watch-glob option which allows you to override the default watch glob without having to go through the live() / watch() API
7.0.4
Small patch #117 to fix a failing test in 7.0.3.
7.0.3
- Bole no longer double-logs on shut-down and re-start.
- Fixed issue with request sizes being logged incorrectly in terminal
7.0.1 .. 7.0.2
Small patches for #110 and #111.
7.0.0
Fixes previous patch and also updates to garnish redesign, leading to new log styles.
Since various ndjson flags have changed, this is a potentially breaking change.
Also added a --verbose / -v option like watchify, which adds some additional debug messages.
6.1.1
Fixes live reload for directory routes like localhost:9966/mydir.
6.1.0
Search for index.html across all static --dir folders, finding the first one.
6.0.0
Major Changes
garnishis now included by default in CLI and API- you can use
--ndjsonandndjson: trueto have raw output (for custom pretty-printers)
- you can use
Minor Changes
- added
--titleoption for the default HTML title - added
--cssoption for a default style sheet
5.0.0
Major Changes
- you can just type
budo . | garnishfor the entry point (orindex.js) - added
--onupdatefor things like linting, see the docs - if no
--hostis specified, resolves to internal IP- you can still hit
localhost:9966and it will work
- you can still hit
- the
<script>src defaults to the filename of the first entry- eg:
budo src/index.jsleads to<script src="index.js">
- eg:
- browserify options must come after a full stop
--- except
--no-debugwhich is passed as a budo option - eg:
budo index.js --no-debug -- -t babelify
- except
--dircan be passed multiple times to use multiple static foldersbudo index.js --dir public --dir tmp
- removed
--live-pluginoption to reduce code complexity- might be added back into CLI later
- API still supports
budo.live({ plugin: true })
- portfinding is enabled by default in API and CLI
- user can disbale with
--no-portfindorportfind: false
- user can disbale with
- removed
--verbose,-v, timing is logged by default now - entry files are now optional (i.e. if you just need a static HTML with LiveReload)
- added
--open,-oto launch browser on connect - syntax errors in code are shown in the DOM body now
- can disable with
--no-error-handler - in API can use
errorHandler: Boolean|Function
- can disable with
- added
--versionto CLI --livecan optionally be a string to only LiveReload on those globs, eg:budo index.js --live=*.{css,html}
- removed
--ignore-watchand--interval- use
budo.watch(glob, chokidarOpts)instead
- use
- shorthand for most CLI options now exists
- arg parsing has improved and uses camel-case in API
- most args are now supported before entries, eg:
budo --live src/index.js
- cleaner error messaging in terminal
API Changes
dircan be a string or array of static paths- the
'connect'event now passeslivePort - the
'connect'eventev.hostnow uses internal IP by default - exposed a CLI feature
require('budo').cli(process.argv.slice(2), { overrides... })
errorHandlercan be used for custom bundle error handlingmiddlewarecan be afn(req, res, next)function for custom routes'update'event now passes(contents, updates)
Browserify Args
Users creating CLI tools on top of budo can use opt.browserifyArgs to handle subarg correctly. Example with minimist:
var args = process.argv.slice(2)
var opts = require('minimist')(args, { '--': true })
budo.cli(args, {
browserifyArgs: opts['--']
})
If no browserifyArgs is specified, then opt.browserify can be used to send the actual JS object to the browserify constructor.
budo.cli(args, {
browserify: {
transform: require('babelify')
}
})
4.2.0
- Added
--pushstateoption #53
4.1.0
- Fixed a bug with
budo ./foo.js