7.7 KiB
11.x
Breaking Changes
- Upgraded to
browserify@15
, set supported node version to>= 4
10.x
🎉
Breaking Changes
- Upgraded to
browserify@14
- The
--pushstate
boolean 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-lr
or 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.js
now serves the LiveReload client
- No longer uses
Other Changes
opts.staticOptions
is now passed ontoserve-static
moduleopts.pushstate
(boolean or object) is now passed ontoconnect-pushstate
module- CLI now supports subarg syntax for commands like
--static-options
and--pushstate
defaultIndex
function now accepts areq
as 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
pushstate
flag 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.json
scripts 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-index
to CLI #188
9.2.2
- Minimize XSS risks in URLs on 404 #182
9.2.0
- Improved
--cors
flag in middleware stack #172
9.1.0
- Support
browserify: { entries: [] }
in API options #167 - The
connect
event also returns aserver
instance, 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
garnish
is now included by default in CLI and API- you can use
--ndjson
andndjson: true
to have raw output (for custom pretty-printers)
- you can use
Minor Changes
- added
--title
option for the default HTML title - added
--css
option for a default style sheet
5.0.0
Major Changes
- you can just type
budo . | garnish
for the entry point (orindex.js
) - added
--onupdate
for things like linting, see the docs - if no
--host
is specified, resolves to internal IP- you can still hit
localhost:9966
and it will work
- you can still hit
- the
<script>
src defaults to the filename of the first entry- eg:
budo src/index.js
leads to<script src="index.js">
- eg:
- browserify options must come after a full stop
--
- except
--no-debug
which is passed as a budo option - eg:
budo index.js --no-debug -- -t babelify
- except
--dir
can be passed multiple times to use multiple static foldersbudo index.js --dir public --dir tmp
- removed
--live-plugin
option 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-portfind
orportfind: 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
,-o
to 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
--version
to CLI --live
can optionally be a string to only LiveReload on those globs, eg:budo index.js --live=*.{css,html}
- removed
--ignore-watch
and--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
dir
can be a string or array of static paths- the
'connect'
event now passeslivePort
- the
'connect'
eventev.host
now uses internal IP by default - exposed a CLI feature
require('budo').cli(process.argv.slice(2), { overrides... })
errorHandler
can be used for custom bundle error handlingmiddleware
can 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
--pushstate
option #53
4.1.0
- Fixed a bug with
budo ./foo.js