babel-preset-modern-node
Version:
Babel preset for modern node apps
98 lines (72 loc) • 3.48 kB
Markdown
[babel-preset-modern-node][]
================================
Babel preset for building modern node apps with the least amount of
transformations as possible.
[](https://travis-ci.org/michaelcontento/babel-preset-modern-node)
[](https://david-dm.org/michaelcontento/babel-preset-modern-node)
[](https://david-dm.org/michaelcontento/babel-preset-modern-node#info=devDependencies)
[](https://www.npmjs.com/package/babel-preset-modern-node)
[](https://www.npmjs.com/package/babel-preset-modern-node)
[](https://www.npmjs.com/package/babel-preset-modern-node)
## Installation
npm install --save-dev babel-preset-modern-node
## Usage
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)
```json
{
"presets": ["modern-node"]
}
```
Or:
```json
{
"presets": [["modern-node", { "loose": true, ... }]]
}
```
### Via CLI
babel script.js --presets modern-node
### Via Node API
```js
require('babel-core').transform('code', {
presets: ['modern-node'],
})
```
Or:
```js
require('babel-core').transform('code', {
presets: [['modern-node', { "loose": true, ... }]],
})
```
## Compatibility
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][plugin-array-includes] for more details.
### Special extras
1. If you project contains a `package.json` the super global `__VERSION__`
will be set accordingly
* See [plugin-version-inline][]
1. Strict mode will be enabled
* See [transform-strict-mode][]
1. Restricted keywords will always be quoted
* `foo.default` becomes `foo["default"]`
* See [transform-es3-member-expression-literals][]
* `default: "bar"` becomes `"default": "bar"`
* See [transform-es3-property-literals][]
[1]: http://www.2ality.com/2015/11/configuring-babel6.html
[babel-preset-modern-node]: https://github.com/michaelcontento/babel-preset-modern-node
[plugin-version-inline]: https://www.npmjs.com/package/babel-plugin-version-inline
[transform-es3-member-expression-literals]: https://www.npmjs.com/package/babel-plugin-transform-es3-member-expression-literals
[transform-es3-property-literals]: https://www.npmjs.com/package/babel-plugin-transform-es3-property-literals
[transform-strict-mode]: https://www.npmjs.com/package/babel-plugin-transform-strict-mode
[plugin-array-includes]: https://www.npmjs.com/package/babel-plugin-array-includes