Babel preset for modern node apps
JavaScript Shell Makefile
Latest commit e2e215d Nov 2, 2016 @michaelcontento committed on GitHub Add deprecation notice


Babel preset for building modern node apps with the least amount of transformations as possible.

build dependencies devDependencies

license npm version npm downloads

Deprecated - No longer maintained

My focus has left the node ecosystem and also the awesome babel-team came up with babel-preset-env. So please do yourself a favor and switch over to babel-preset-env.

Thank you for your patience and using this module in the first place!


npm install --save-dev babel-preset-modern-node


Simply use this preset as any other. Following options can be passed to configure babel-preset-modern-node to your taste:

  • Set loose mode optimizations (default: false)
    • loose = true|false
  • Module loader to use (default: commonjs)
    • modules = (false|commonjs|amd|umd|systemjs)
  • Min node version compatibility (default: process.versions.node)
    • version = "5.10.2"

Via .babelrc (recommended)

  "presets": ["modern-node"]


  "presets": [["modern-node", { "loose": true, ... }]]


babel script.js --presets modern-node

Via Node API

require('babel-core').transform('code', {
  presets: ['modern-node'],


require('babel-core').transform('code', {
  presets: [['modern-node', { "loose": true, ... }]],


This preset currently supports ES2015 and ES2016 support for all minor node versions starting at v0.12.

Notes on Array.includes

This preset does not modify the global space / prototypes! Due to this we're not able to fully support ES2016's Array.includes see here for more details.

Special extras

  1. If you project contains a package.json the super global __VERSION__ will be set accordingly
  2. Strict mode will be enabled
  3. Restricted keywords will always be quoted