The Node.js Update #Week 20 of 2019. 17 May

Below you can find a collection of the most important Node.js updates, tutorials & announcements from this week - curated by RisingStack's Node.js Developers.

GitHub Package Registry: Your packages, at home with their code

GitHub announced the launch of a limited beta of the GitHub Package Registry, its new package management service that lets developers publish public and private packages next to their source code.

To be clear, GitHub isn’t launching a competitor to tools like npm or RubyGems.

What the company is launching, however, is a service that is compatible with these tools and allows developers to find and publish their own packages, using the same GitHub interface they use for their code. The new service is currently compatible with JavaScript (npm), Java (Maven), Ruby (RubyGems), .NET (NuGet) and Docker images, with support for other languages and tools to come.

A Guide to Node.js Logging

When you start developing in JavaScript one of the first things you'll probably learn is how to log things to the console using console.log. If you search on how to debug JavaScript you'll find hundreds of blog posts and StackOverflow articles pointing you to "simply" console.log it. And because it's such a common practice we even started having linter rules like no-console to make sure we don't leave accidental log statements in our production code. But what if we actually want to log something intentionally to provide more information?

In this blog post we'll look at various situations where you want to log info, what the difference between console.log and console.error in Node.js is, and how you can ship logging in your libraries without cluttering the users console.

Building Live Streaming App with Node.js and React

This tutorial shows how you can build your own video streaming app with Nodejs. The tutorial consists of five parts.

  • Web Server with Basic authentication
  • Setting up an RTMP server in Nodejs
  • Displaying live streams
  • Issuing streaming keys to broadcasters
  • Generating live stream thumbnails

GraphQL vs REST: Putting REST to Rest

Not everyone fully understands yet what GraphQL is all about, or why it's being declared as the successor of REST, and that's exactly what this article clears up by showing off GraphQL's main features and the advantages that it has over REST, highlighting a few points in which both differ.

The goal is to provide a brief explanation to anyone who still hasn't got to know GraphQL, and clarify exactly what it does better than REST, for those who are still skeptic about this technology.

When Not to Use Lock Files with Node.js

Probably one of the most common situations that you encounter when debugging a problem is the "works on my machine" scenario. This is often the result of different underlying dependencies on the system of the person with the bug and your own system. As a result both yarn and npm introduced so called "lock files" at one point that keep track of the exact versions of your dependencies.

However, when you are developing a package that will be published to npm, you should avoid using such lock files. In this blog post we'll discuss why this is the case.

Setting up a developer environment for contributing to the Javascript Open Source Ecosystem

This post will provide actionable pointers for refining a developer environment with three areas of focus:

? Desktop Environment (macOS) ?

* The Master Keyboard Shortcut → Simplicity
* Window / Tiling Manager → Speed
* Multiple Desktops → Compartmentalisation

? Sandbox Environments ?

* The Recipe for a JavaScript Sandbox → Command Line
* Additional steps for a React Sandbox → Next.js
* Unit tests in a Sandbox → Jest
* → Sharing reproducible examples

? Developer Tools ?

*  Git → Leveraging Versioning
*  Node → Running project with earlier versions of Node
*  Shell → Writing executable scripts
*  npm → Testing locally compiled library

Javascript: What Is The Execution Context? What Is The Call Stack?

What are the pillars of Javascript that you should master before calling yourself intermediate (or even senior) Javascript developer? There are many: Scope, Closure, Callbacks, Prototype, and so on.

But before diving deeper into these concepts you should at least understand how the Javascript engine works. In this post we’ll walk through two fundamental pieces of every Javascript engine: the Execution Context and the Call Stack.