All notable changes to this project will be documented in this file. See commit-and-tag-version for commit guidelines.
10.0.0-0 (2026-02-13)
9.0.0 (2026-02-12)
- Suppress experimental warnings in node v18 (@tmont)
- Drop support for node v12, new minimum version of node is v14 (@bjornstar)
- [
devDependencies] Update@types/node,eslint,husky,lint-staged, &tap(@bjornstar)
- [
loaders] Pass on unsupported extension errors when format is notbuiltinorcommonjs(@bjornstar) - [
devDependencies] Update most devDependencies to their latest versions (@bjornstar) - [
dependencies] Updateminimist,resolve&semver(@bjornstar)
- [wrap] Worker threads inherit node arguments, we only need the main thread to listen for file changes (@lehni)
- [
loaders] Do not attempt to resolve urls unless they arefile://urls (@bjornstar)
- Use
--requireto invoke the wrapper (@kherock) - [
loaders] UsefileURLToPathto ensure support on Windows (@kherock) - [
wrap] Suppress warnings about using experimental loaders (@kherock) - [
tests] Ensure tests pass even if warnings are emitted (@bjornstar) - [CI] Add tests for node v12.10, v12.16, and v17 (@bjornstar)
- Add
--experimental-modulesfor ESM module support on node <12.17 (@bjornstar) - Use
ipc.mjsforget-source-loader.mjs(@bjornstar) - [
test] Move extensions options tests into their own directory (@bjornstar)
- Add
--no-warningsnode option (@lehni) - Enable ESM support when package type is set to
module(@lehni)
- Add
--preserve-symlinksnode option - Update
taptov15.1.6 - Update
eslinttov8.10.0 - README Fix typo
- Add a more explicit test for "All command-line arguments that are not node-dev options are passed on to the node process."
- README Add special note about delimiting scripts
- [ESM] Update
experimental-loaderto use newloadmethod from nodev16.12.0onwards
@types/nodeupdated fromv14.14.37tov16.11.3eslintupdated fromv7.25.0tov8.0.1huskyupdated fromv6.0.0tov7.0.4lint-stagedupdated fromv10.5.4tov11.2.3ts-node-maintainedupdated fromv9.1.1tov10.3.1- [CI] Start testing on windows
- [
test/utils]touchFilecan take a path - [
test/typescript] Usemessage.tsinstead ofmessage.js
- [CLI] Improve command-line parsing, restore support for --require with a space
- README Move images into repo and fix URLs
- [dependencies] Update
minimistfromv1.1.3tov1.2.5 - [.npmignore] Add more config files
- [CI] Add github workflows
- [CI] Add appveyor
- [CI] Start testing against node v16
- [CI] Stop testing against node v10
- [
test/spawn] Splitindexinto multiple files - [
test/utils] Replaced directory of files with a single module that contains two methods:spawnandtouchFile - [
test/utils/run] Movedrunfunction directly into therunfile - [devDependenies] Update
eslintfromv7.23.0tov7.25.0
- [New Option]
--debounceto control how long to wait before restarting - [New Option]
--intervalto adjust the polling interval when enabled - [
test] Stop usingtapaliases - [
husky] Migrate fromv4tov6 - [dependencies] Update
semverfromv7.3.4tov7.3.5 - [devDependencies] Update
@types/node,eslint,husky, &tap
--clearnow clears the screen on first start--clearuses\u001bcinstead of\033[2J\033[H- [.eslintrc] Add rules for semicolons and whitespace
- [test/cli] Add tests for clear
- [test/spawn] Add tests for clear
- [test/spawn] Move into directory
- [test/utils/spawn] Strip out control char when logging
- [lib/clear] Move clear logic into separate file
- [lib/index] Group similar code
- [.npmignore] We can ignore some dotfiles that aren't necessary for the module to function
- [.gitignore] Add
package-lock.json - Prefer extracting only the method names from modules that we require, this is a preparatory step for switching to import statements and enables tree shaking.
- Prefer using triple equals instead of double.
- Prefer using arrow functions
- [lib/ignore.js] Move ignore logic into its own file
- [lib/local-path.js] Move local path function into its own file
- [lib/log.js] Convert to ES6
- [lib/notify.js] Convert to ES6
- [test] Finish converting to ES6 style code
- Update node-notifier
- Remove the SIGTERM listener when a signal is received so that other listeners don't see ours.
- Remove coffeescript tests and dev dependency
- Use eslint:recommended instead of airbnb-base/legacy
- Add prettier
- Add package-lock.json
- Add lint-staged
- Update the README
- Stop disconnecting from child processes, this should prevent internal EPIPE errors
- Stop adding filewatchers until child processes have completed exiting
- [IPC] Stop listening on
message - [IPC] Remove extraneous
destarguments - [IPC] Add a connected guard on relay
- [Test] Move cluster from
runtospawn - [Test] Fix typo in cluster test
- [Test] Cluster test now waits for children processes to successfully start up again
- [Test] Add guards to IPC and cluster tests to prevent process exit from ending the test a 2nd time
- [
dependency] Updatesemverfromv7.3.2tov7.3.4 - [
devDependency] Removenyc - [
devDependency] Update@types/node,eslint,eslint-config-airbnb-base,tap,ts-node-maintained, &typescript - [
Vagrantfile] RemoveVagrantfile - [
README] Fix typo (@ivalsaraj)
- Handle multiple values of arguments in command line (Fixes #238)
- Manually wrangle node args so that we can handle
--args coming before-args (Fixes #236)
- Support ESModules in node v12.11.1+ using
get-source-loader.mjsandresolve-loader.mjsfor earlier versions (Fixes #212) - Pass all unknown arguments to node (Fixes #198)
- Add a test case for typescript using require on the command line
- Add a test case for coffeescript using require on the command line
- Add a test case for
--experimental-specifier-resolution=node - Add a test case for
--inspect - Add
ts-node-maintained/registeras a default extension (Fixes #182) - [
README.md] Updated to explain ESModule usage, node arguments, and typescript - [
test/utils/touch-file] Now takes the filename as an argument - [
test/utils/spawn] Also calls the callback with stderr output
- [lib/ipc.js] Do not send unless connected
- [wrap.js] Improve uncaughtException handling to turn non-errors into errors (Fixes #231)
- [ipc.js] Declare
NODE_DEVas a variable - [ipc.js] Inline single line function only used twice
- [tests] Filenames should be snake-case
- Remove
--all-depsand--no-depsCLI options, use--deps=-1or--deps=0respectively - Unify
cliandcfglogic to ensure CLI always overrides config files - Load order for config files now matches what is in the
README - Add tests for notify, CLI should override config files
- All config now have clear default values
- Use more ES6 code
- Rename
resolveMain.jstoresolve-main.js
- Enable
--notifyby default and add tests - Disable by passing
--notify=false - Move cli code out of bin
- Start testing cli interface
- Add bin to lint
- No longer sets NODE_ENV to
development
- Update devDependencies:
eslint: fromv2.0.0tov7.3.1eslint-config-airbnb-base: fromv3.0.1tov14.2.0eslint-plugin-import: from v1.8.1tov2.22.0tap: fromv12.6.2tov14.10.7touch: fromv1.0.0tov3.1.0
- Removed windows restriction for
graceful_ipc - No longer attempts to send
SIGTERMto disconnected child processes - [package.json] Set minimum node version to 10
- [package.json] Changed test script to be more cross-platform
- [tests] Split tests into 3 separate files
- [tests] Removed a few opportunities for race conditions to occur
- [tests] Some filesystems have single second precision, so tests now wait a minimum of 1 second before touching a file
- Update dependencies:
- dynamic-dedupe: from v0.2.0 to v0.3.0
- node-notifier: from v4.0.2 to v5.4.0
- Update devDependencies:
- From coffee-script v1.8.0 to coffeescript v2.4.1
- Add option 'graceful_ipc' for windows children
- Read config from CWD as well as script dir
- Ignore package-lock.json for git and npm
- TravisCI: Test node v6 - 11, stop testing node v5
- Update README for how babel is now packages
- Specify minimum node version as >=6
- Update docs
- Fix eslint errors
- Re-enable test for #134
- Proof against weird
require.extensions. See #134. - Ensure method patching works when filename arguments are missing. See #135.
- Enable
--notifyby default again. See #125. - Support filename option passed to VM methods. Fixes #130.
- Add
--no-notifyto disable desktop notifications. See #120. - Fix
--no-depsoption. See #119.
- Add
--respawnto keep watching after a process exits. See #104. - Don't terminate the child process if a custom
uncaughtExceptionhandler is registered. See #113. - Handle
-rand--requirenode options correctly. See #111. - Add support for passing options to transpilers. See #109.
- Handle
--no-depscorrectly. See #108. - Switch to airbnb code style
- Use greenkeeper.io to keep dependencies up to date