
Security News
gem.coop Tests Dependency Cooldowns as Package Ecosystems Move to Slow Down Attacks
gem.coop is testing registry-level dependency cooldowns to limit exposure during the brief window when malicious gems are most likely to spread.
babel-register
Advanced tools
The require hook will bind itself to node's require and automatically compile files on the fly.
One of the ways you can use Babel is through the require hook. The require hook
will bind itself to node's require and automatically compile files on the
fly. This is equivalent to CoffeeScript's
coffee-script/register.
npm install babel-register --save-dev
require("babel-register");
All subsequent files required by node with the extensions .es6, .es, .jsx
and .js will be transformed by Babel.
Polyfill not included
You must include the polyfill separately when using features that require it, like generators.
node_modules by defaultNOTE: By default all requires to node_modules will be ignored. You can
override this by passing an ignore regex via:
require("babel-register")({
// This will override `node_modules` ignoring - you can alternatively pass
// an array of strings to be explicitly matched or a regex / glob
ignore: false
});
require("babel-register")({
// Optional ignore regex - if any filenames **do** match this regex then they
// aren't compiled.
ignore: /regex/,
// Ignore can also be specified as a function.
ignore: function(filename) {
if (filename === "/path/to/es6-file.js") {
return false;
} else {
return true;
}
},
// Optional only regex - if any filenames **don't** match this regex then they
// aren't compiled
only: /my_es6_folder/,
// Setting this will remove the currently hooked extensions of .es6, `.es`, `.jsx`
// and .js so you'll have to add them back if you want them to be used again.
extensions: [".es6", ".es", ".jsx", ".js"]
});
You can pass in all other options as well,
including plugins and presets. But note that the closest .babelrc
to each file still applies, and takes precedence over any options you pass in here.
By default babel-node and babel-register will save to a json cache in your
temporary directory.
This will heavily improve with the startup and compilation of your files. There are however scenarios where you want to change this behaviour and there are environment variables exposed to allow you to do this.
Specify a different cache location.
BABEL_CACHE_PATH=/foo/my-cache.json babel-node script.js
Disable the cache.
BABEL_DISABLE_CACHE=1 babel-node script.js
ts-node is a TypeScript execution environment and REPL for Node.js. It allows you to run TypeScript code directly without precompiling, similar to how babel-register works for JavaScript. While babel-register focuses on JavaScript, ts-node is specifically designed for TypeScript.
esm is a package that enables ES modules in Node.js. It allows you to use import/export syntax in Node.js applications without needing to transpile your code. Unlike babel-register, which transpiles code to ES5, esm focuses on providing native ES module support.
Sucrase is a super-fast alternative to Babel that focuses on compiling modern JavaScript syntax to a format that Node.js can understand. It is similar to babel-register in that it allows on-the-fly transpilation, but it is optimized for speed and supports a more limited set of transformations.
FAQs
babel require hook
The npm package babel-register receives a total of 1,282,968 weekly downloads. As such, babel-register popularity was classified as popular.
We found that babel-register demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
gem.coop is testing registry-level dependency cooldowns to limit exposure during the brief window when malicious gems are most likely to spread.

Security News
Following multiple malicious extension incidents, Open VSX outlines new safeguards designed to catch risky uploads earlier.

Research
/Security News
Threat actors compromised four oorzc Open VSX extensions with more than 22,000 downloads, pushing malicious versions that install a staged loader, evade Russian-locale systems, pull C2 from Solana memos, and steal macOS credentials and wallets.