Node.js

Node.js is a JavaScript runtime built on the V8 JavaScript engine.

ECMAScript

ECMAScript is an object-oriented programming language for performing computations and manipulating computational objects within a host environment.

WebAssembly

At its core, WebAssembly is a virtual instruction set architecture (virtual ISA). As such, it has many use cases and can be embedded in many different environments.

NPM

When you sign up for an npm user account or create an Org, you are granted a scope that matches your user or Org name. You can use this scope as a namespace for related packages. The scope name is everything between the @ and the slash /, ex. @npm/package-name.

  • Adapt packages of code for your apps, or incorporate packages as they are.
  • Download standalone tools you can use right away.
  • Run packages without downloading using npx.
  • Share code with any npm user, anywhere.
  • Restrict code to specific developers.
  • Create Orgs (organizations) to coordinate package maintenance, coding, and developers.
  • Form virtual teams by using Orgs.
  • Manage multiple versions of code and code dependencies.
  • Update applications easily when underlying code is updated.
  • Discover multiple ways to solve the same puzzle.
  • Find other developers who are working on similar problems and projects.

Package

A package is a file or directory that is described by a package.json file. A package must contain a package.json file in order to be published to the npm registry. For more information on creating a package.json file.

  • A folder containing a program described by a package.json file.
  • A gzipped tarball containing (a).
  • A URL that resolves to (b).
  • A <name>@<version> that is published on the registry with (c).
  • A <name>@<tag> that points to (d).
  • A <name> that has a latest tag satisfying (e).
  • A git url that, when cloned, results in (a).

Module

A module is any file or directory in the node_modules directory that can be loaded by the Node.js require() function.

  • A folder with a package.json file containing a "main" field.
  • A folder with an index.js file in it.
  • A JavaScript file.

Modules, v13.x

  • Assertion Testing
  • Async Hooks
  • Buffer
  • C++ Addons
  • C/C++ Addons with N-API
  • Child Processes
  • Cluster
  • Command Line Options
  • Console
  • Crypto
  • Debugger
  • Deprecated APIs
  • DNS
  • Domain
  • ECMAScript Modules
  • Errors
  • Events
  • File System
  • Globals
  • HTTP
  • HTTP/2
  • HTTPS
  • Inspector
  • Internationalization
  • Modules
  • Net
  • OS
  • Path
  • Performance Hooks
  • Policies
  • Process
  • Punycode
  • Query Strings
  • Readline
  • REPL
  • Report
  • Stream
  • String Decoder
  • Timers
  • TLS/SSL
  • Trace Events
  • TTY
  • UDP/Datagram
  • URL
  • Utilities
  • V8
  • VM
  • WASI
  • Worker Threads
  • Zlib

Installation

gyp: No Xcode or CLT version

xcode-select --print-path

sudo rm -r -f /Library/Developer/CommandLineTools

xcode-select --install