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 alatest
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
xcode-select --print-path
sudo rm -r -f /Library/Developer/CommandLineTools
xcode-select --install