- CSS sourcemaps are flattened correctly
- Sourcemaps persist across non-sourcemap-generating transform boundaries (#63)
- Internal tidy up
- Sourcemap flattening happens in a separate final directory - fixes (#63)
- Sourcemap flattening only applies to
.js
and.css
files (#64)
- Unwanted
sourceMappingURL
comments are always removed from file transformer output (maps are handled by gobble) (#58)
- Prevent build from hanging (#56)
- BREAKING: the
.grab()
and.moveTo()
methods take a single path (previously, they would accept multiple strings, which would be joined withpath.join()
) (#53) - The
.grab()
,.moveTo()
,.include()
and.exclude()
builtin transformers accept an optional second argument, which can have anid
property which is used for debugging
- Added missing source-map-support dependency
- Missing sourcemaps do not fail the build
- Fix regression when building (failure to propagate information)
- Implement
node.observe()
,node.observeIf()
andnode.transformIf()
(#44) - Handle files with spaces when creating sourcemaps (#47)
- Cached transforms can be reused regardless of sourcemaps (#46)
- Fix regression introduced in 0.7.12
- Inline sourcemaps from file transformers are fixed (#45)
- More robust invalidation (#42)
inputdir
andoutputdir
are added to the error object on transformation failure- File watcher errors are not handled
- Removed generated
lib/
directory from repo - Internal tidy up
- Prevent source changes during file transformations causing transformer promise to never resolve (#41)
- File transforms can specify their encoding with the
sourceEncoding
option (#40)
- Prevent map transforms generating phantom sourcemaps on incremental builds (#39)
- Auto-generated sourcemaps have the correct
sourcesContent
- Auto-generated sourcemap names are deconflicted (#38)
- Fixes a regression in 0.7.5 whereby directories with the same name would not be merged correctly (later directories would overwrite earlier ones)
- The
accept
andext
options are deleted from the options object passed through to map transformers (#36)
- Stack traces are preserved when errors are thrown inside transformations
- Auto-generated sourceMappingURLs are always absolute (#33)
- You can now gobble a single file (
node = gobble('myFile.txt')
) (#23) - Transformer context includes
env
property and alog
method (#24) - The
accept
option of a file transformer can include regexes as well as file extension strings - sander is exposed as
gobble.sander
, for convenience - Duplicate messages are squelched (gobble-cli/#6)
- Minor bugfixes
- Errors are augmented with
file
,line
andcolumn
properties where possible, for smarter debugging
- Add
node.watch()
method, for building to a specific folder and keeping it updated as files change - Task
info
events are fired with objects with message codes, rather than strings. Consult the wiki for a list of message codes - Internal refactoring
- The
GOBBLE_ENV
andGOBBLE_CWD
environment variables can be set with e.g.gobble.env('test')
andgobble.cwd(__dirname)
respectively (gobble.env()
/gobble.cwd()
without arguments retrieves the current value) - Fixes edge case whereby source nodes would be incorrectly shared between trees
- Better error handling with file transformers
- File transformers can return an object with a missing (or falsy)
map
property
- Upgrade sander module to version that uses graceful-fs, to prevent EMFILE errors
- If a source node is used more than once, changes will only trigger one rebuild (#19)
- Merge operations can be aborted mid-flight, to prevent unnecessary work
- Fix for (#19)
- Nodes clean up after themselves on each successful build, to avoid lengthy subsequent startup times (#16)
- Serve task emits
build
event on each successful build - Files are given the correct extension by the map transformation if their inputs are unchanged (#14)
- The
ready
event is only emitted by the serve task when the server is listening and the first build is complete
- Fix names of sourcemaps in subdirectories
- Reinstate CRC comparisons, for fast one-to-one transformations (unchanged files are not transformed again)
- Implement
node.stop()
, for cleaning up after finishing serving or restarting a server
- Internal refactoring
gobble('dir')
will throw an error if thedir
directory doesn't exist (#12)
- Fixed bug introduced in 0.6.0, whereby
.cache
directories were inadvertently destroyed on cleanup
- Started maintaining a changelog
- Plugin API changed - transformers take a single callback (rather than callback/errback) or return a Promise (#5)
- Map transforms can return a string, or an object with a
code
property (containing the transformed contents) and an optionalmap
property (containing a valid sourcemap) (#6) - Build tasks default to a different gobbledir to serve tasks (
.gobble-build
instead of.gobble
), so a project can be served and built simultaneously (#7) gobble.file()
is no longer exposed - plugins should usefs
or, if necessary, an alternative filesystem utility such as sander (which gobble uses internally)