Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

babel-preset-node5

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-preset-node5

Babel preset for Node 5.x (ECMAScript stage 0 and up)

  • 12.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
213
decreased by-20.52%
Maintainers
1
Weekly downloads
 
Created
Source

Note: DEPRECATED. Please use babel-preset-env instead.

This package is no longer the recommended way to polyfill with Babel. The new best practice is to use babel-preset-env.


Babel 6.x presets for Node 5.x (updated regularly!)

Node 5.x brings ~59% native ES6/ES2015 coverage.

This preset for Babel 6 attempts to bridge the gap for the much of the remaining 41% of the evolving ECMAScript spec using Babel plug-ins, from stage 0 and up.

Motivation

Babel 6.x is awesome, but simply including the ES2015 preset means you're transpiling features that your Node 5.x installation can already do faster and natively, replacing them with inferior / old code.

This preset complements existing V8-native functionality - it doesn't work around it.

The end result is nearly always a faster build and script execution time.

Key features:

Note: This package originally shipped with the React preset, but to avoid bloat, doesn't any longer. If you want to add that, please install babel-preset-react too

Usage instructions

Installation

Install via NPM the usual way:

npm i babel-preset-node5

Usage

Create a .babelrc file in your project root, and include 'node5' in your preset path:

{
  "presets": [
    "node5"
  ]
}

Now whenever you run babel-node, it will polyfill your app with the ES2015 features that Node 5 is missing.

Via CLI

$ babel script.js --presets node5

Via Node API

If you don't want to use a project-wide .babelrc file (as above):

require("babel-core").transform("code", {
  presets: ["node5"]
});

And if you do, and you want to use vanilla node instead of babel-node as your CLI, you can create an entry script that references your pre-transpiled code like so:

require('babel-register');
require('path/to/es6/script');

... which will then run everywhere Node can.

Of course, make sure to npm i -S babel-core or npm i -S babel-register respectively, to grab the NPM packages you'll need to transpile on-the-fly.

Webpack, Gulp, Browserify, etc

Follow vendor instructions and include node5 in your babel "preset" list.

How to add React support

Babel has a ready-made preset for React, and you now need to install it separately.

Just grab it via NPM:

npm i babel-preset-react

And then add it to your "presets" list in .babelrc:

{
  "presets": [
    "node5",
    "react"
  ]
}

How to use async/await

The async/await proposal allows you to wait on a Promise, and write asynchronous code that looks synchronous.

Here's an example:

async function getUsers(howMany) {
  try {
    const response = await fetch(`http://jsonplaceholder.typicode.com/users/${howMany}`); // <-- a Promise
    return response.json(); // <-- Another promise.
  } catch(e) {
    console.log('some kind of error occurred: ', e)
  }
}

getUsers(10).then(users => {
  // "users" contains the result of `response.json()`. Async functions *always*
  // return a promise, even if that means wrapping a non-Promise in Promise.resolve
})

In the above example, fetch returns a promise. By prefixing the function with async and prefixing every Promise with await, we avoid the typical .then() chain inside of the function block and can reason about the flow of the application a little more clearly.

We can also wrap promises in try/catch blocks, instead of bolting on .catch() chains.

The necessary babel plug-ins to use async/await are included in this package, so you can use this syntax right away.

Using with Webpack 2 or Rollup?

If you want to enable 'tree shaking' in Webpack 2 or Rollup, you can optionally remove transpiling down to CommonJS by passing { "modules": false } as an option when including this module in your .babelrc file, like so:

{
  "presets": [
    ["node5", {
      "modules": false
    }]
  ]
}

Using Node 7.x?

Check out babel-preset-node7

Keywords

FAQs

Package last updated on 02 Feb 2017

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc