Copyright OpenJS Foundation and Node.js contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | Bylaws | Code of Conduct | Trademark Policy | Trademark List | Cookie Policy
Node.js
Node.js is an open-source, cross-platform JavaScript runtime environment.
For information on using Node.js, see the Node.js website.
The Node.js project uses an open governance model. The
OpenJS Foundation provides support for the project.
Contributors are expected to act in a collaborative manner to move
the project forward. We encourage the constructive exchange of contrary
opinions and compromise. The TSC
reserves the right to limit or block contributors who repeatedly act in ways
that discourage, exhaust, or otherwise negatively affect other participants.
This project has a Code of Conduct.
Table of contents
- Support
- Release types
- Download
- Current and LTS releases
- Nightly releases
- API documentation
- Verifying binaries
- Download
- Building Node.js
- Security
- Contributing to Node.js
- Current project team members
- TSC (Technical Steering Committee)
- Collaborators
- Triagers
- Release keys
- License
Support
Looking for help? Check out the
instructions for getting support.
Release types
- Current: Under active development. Code for the Current release is in the
branch for its major version number (for example,
v19.x). Node.js releases a new
major version every 6 months, allowing for breaking changes. This happens in
April and October every year. Releases appearing each October have a support
life of 8 months. Releases appearing each April convert to LTS (see below)
each October. - LTS: Releases that receive Long Term Support, with a focus on stability
and security. Every even-numbered major version will become an LTS release.
LTS releases receive 12 months of Active LTS support and a further 18 months
of Maintenance. LTS release lines have alphabetically-ordered code names,
beginning with v4 Argon. There are no breaking changes or feature additions,
except in some special circumstances. - Nightly: Code from the Current branch built every 24-hours when there are
changes. Use with caution.
Current and LTS releases follow semantic versioning. A
member of the Release Team signs each Current and LTS release.
For more information, see the
Release README.
Download
Binaries, installers, and source tarballs are available at
https://nodejs.org/en/download/.
Current and LTS releases
https://nodejs.org/download/release/
The latest directory is an
alias for the latest Current release. The latest-codename directory is an
alias for the latest release from an LTS line. For example, the
latest-hydrogen
directory contains the latest Hydrogen (Node.js 18) release.
Nightly releases
https://nodejs.org/download/nightly/
Each directory name and filename contains a date (in UTC) and the commit
SHA at the HEAD of the release.
API documentation
Documentation for the latest Current release is at https://nodejs.org/api/.
Version-specific documentation is available in each release directory in the
docs subdirectory. Version-specific documentation is also at
https://nodejs.org/download/docs/.
Verifying binaries
Download directories contain a SHASUMS256.txt
file with SHA checksums for the
files.
To download SHASUMS256.txt
using curl
:
curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt
To check that a downloaded file matches the checksum, run
it through sha256sum
with a command such as:
grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c -
For Current and LTS, the GPG detached signature of SHASUMS256.txt
is in
SHASUMS256.txt.sig
. You can use it with gpg
to verify the integrity of
SHASUMS256.txt
. You will first need to import
the GPG keys of individuals authorized to create releases. To
import the keys:
gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C
See Release keys for a script to import active release keys.
Next, download the SHASUMS256.txt.sig
for the release:
curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig
Then use gpg --verify SHASUMS256.txt.sig SHASUMS256.txt
to verify
the file’s signature.
Building Node.js
See BUILDING.md for instructions on how to build Node.js from
source and a list of supported platforms.
Security
For information on reporting security vulnerabilities in Node.js, see
SECURITY.md.
Contributing to Node.js
- Contributing to the project
- Working Groups
- Strategic initiatives
- Technical values and prioritization
Current project team members
For information about the governance of the Node.js project, see
GOVERNANCE.md.
TSC (Technical Steering Committee)
TSC voting members
- aduh95 —
Antoine du Hamel <duhamelantoine1995@gmail.com> (he/him) - anonrig —
Yagiz Nizipli <yagiz@nizipli.com> (he/him) - apapirovski —
Anatoli Papirovski <apapirovski@mac.com> (he/him) - benjamingr —
Benjamin Gruenbaum <benjamingr@gmail.com> - BridgeAR —
Ruben Bridgewater <ruben@bridgewater.de> (he/him) - cjihrig —
Colin Ihrig <cjihrig@gmail.com> (he/him) - danielleadams —
Danielle Adams <adamzdanielle@gmail.com> (she/her) - GeoffreyBooth —
Geoffrey Booth <webadmin@geoffreybooth.com> (he/him) - gireeshpunathil —
Gireesh Punathil <gpunathi@in.ibm.com> (he/him) - jasnell —
James M Snell <jasnell@gmail.com> (he/him) - joyeecheung —
Joyee Cheung <joyeec9h3@gmail.com> (she/her) - legendecas —
Chengzhong Wu <legendecas@gmail.com> (he/him) - mcollina —
Matteo Collina <matteo.collina@gmail.com> (he/him) - mhdawson —
Michael Dawson <midawson@redhat.com> (he/him) - MoLow —
Moshe Atlow <moshe@atlow.co.il> (he/him) - RafaelGSS —
Rafael Gonzaga <rafael.nunu@hotmail.com> (he/him) - RaisinTen —
Darshan Sen <raisinten@gmail.com> (he/him) - richardlau —
Richard Lau <rlau@redhat.com> - ronag —
Robert Nagy <ronagy@icloud.com> - ruyadorno —
Ruy Adorno <ruyadorno@google.com> (he/him) - targos —
Michaël Zasso <targos@protonmail.com> (he/him) - tniessen —
Tobias Nießen <tniessen@tnie.de> (he/him) - Trott —
Rich Trott <rtrott@gmail.com> (he/him)
TSC regular members
- BethGriggs —
Beth Griggs <bethanyngriggs@gmail.com> (she/her) - bnoordhuis —
Ben Noordhuis <info@bnoordhuis.nl> - ChALkeR —
Сковорода Никита Андреевич <chalkerx@gmail.com> (he/him) - codebytere —
Shelley Vohr <shelley.vohr@gmail.com> (she/her) - danbev —
Daniel Bevenius <daniel.bevenius@gmail.com> (he/him) - fhinkel —
Franziska Hinkelmann <franziska.hinkelmann@gmail.com> (she/her) - gabrielschulhof —
Gabriel Schulhof <gabrielschulhof@gmail.com> - mscdex —
Brian White <mscdex@mscdex.net> - MylesBorins —
Myles Borins <myles.borins@gmail.com> (he/him) - rvagg —
Rod Vagg <r@va.gg> - TimothyGu —
Tiancheng «Timothy» Gu <timothygu99@gmail.com> (he/him)
TSC emeriti members
TSC emeriti members
- addaleax —
Anna Henningsen <anna@addaleax.net> (she/her) - chrisdickinson —
Chris Dickinson <christopher.s.dickinson@gmail.com> - evanlucas —
Evan Lucas <evanlucas@me.com> (he/him) - Fishrock123 —
Jeremiah Senkpiel <fishrock123@rocketmail.com> (he/they) - gibfahn —
Gibson Fahnestock <gibfahn@gmail.com> (he/him) - indutny —
Fedor Indutny <fedor@indutny.com> - isaacs —
Isaac Z. Schlueter <i@izs.me> - joshgav —
Josh Gavant <josh.gavant@outlook.com> - mmarchini —
Mary Marchini <oss@mmarchini.me> (she/her) - nebrius —
Bryan Hughes <bryan@nebri.us> - ofrobots —
Ali Ijaz Sheikh <ofrobots@google.com> (he/him) - orangemocha —
Alexis Campailla <orangemocha@nodejs.org> - piscisaureus —
Bert Belder <bertbelder@gmail.com> - sam-github —
Sam Roberts <vieuxtech@gmail.com> - shigeki —
Shigeki Ohtsu <ohtsu@ohtsu.org> (he/him) - thefourtheye —
Sakthipriyan Vairamani <thechargingvolcano@gmail.com> (he/him) - trevnorris —
Trevor Norris <trev.norris@gmail.com>
Collaborators
- addaleax —
Anna Henningsen <anna@addaleax.net> (she/her) - aduh95 —
Antoine du Hamel <duhamelantoine1995@gmail.com> (he/him) - anonrig —
Yagiz Nizipli <yagiz@nizipli.com> (he/him) - antsmartian —
Anto Aravinth <anto.aravinth.cse@gmail.com> (he/him) - apapirovski —
Anatoli Papirovski <apapirovski@mac.com> (he/him) - AshCripps —
Ash Cripps <email@ashleycripps.co.uk> - atlowChemi —
Chemi Atlow <chemi@atlow.co.il> (he/him) - Ayase-252 —
Qingyu Deng <i@ayase-lab.com> - bengl —
Bryan English <bryan@bryanenglish.com> (he/him) - benjamingr —
Benjamin Gruenbaum <benjamingr@gmail.com> - BethGriggs —
Beth Griggs <bethanyngriggs@gmail.com> (she/her) - bmeck —
Bradley Farias <bradley.meck@gmail.com> - bnb —
Tierney Cyren <hello@bnb.im> (they/them) - bnoordhuis —
Ben Noordhuis <info@bnoordhuis.nl> - BridgeAR —
Ruben Bridgewater <ruben@bridgewater.de> (he/him) - cclauss —
Christian Clauss <cclauss@me.com> (he/him) - ChALkeR —
Сковорода Никита Андреевич <chalkerx@gmail.com> (he/him) - cjihrig —
Colin Ihrig <cjihrig@gmail.com> (he/him) - codebytere —
Shelley Vohr <shelley.vohr@gmail.com> (she/her) - cola119 —
Kohei Ueno <kohei.ueno119@gmail.com> (he/him) - daeyeon —
Daeyeon Jeong <daeyeon.dev@gmail.com> (he/him) - danbev —
Daniel Bevenius <daniel.bevenius@gmail.com> (he/him) - danielleadams —
Danielle Adams <adamzdanielle@gmail.com> (she/her) - debadree25 —
Debadree Chatterjee <debadree333@gmail.com> (he/him) - deokjinkim —
Deokjin Kim <deokjin81.kim@gmail.com> (he/him) - devnexen —
David Carlier <devnexen@gmail.com> - devsnek —
Gus Caplan <me@gus.host> (they/them) - edsadr —
Adrian Estrada <edsadr@gmail.com> (he/him) - erickwendel —
Erick Wendel <erick.workspace@gmail.com> (he/him) - fhinkel —
Franziska Hinkelmann <franziska.hinkelmann@gmail.com> (she/her) - F3n67u —
Feng Yu <F3n67u@outlook.com> (he/him) - Flarna —
Gerhard Stöbich <deb2001-github@yahoo.de> (he/they) - gabrielschulhof —
Gabriel Schulhof <gabrielschulhof@gmail.com> - gengjiawen —
Jiawen Geng <technicalcute@gmail.com> - GeoffreyBooth —
Geoffrey Booth <webadmin@geoffreybooth.com> (he/him) - gireeshpunathil —
Gireesh Punathil <gpunathi@in.ibm.com> (he/him) - guybedford —
Guy Bedford <guybedford@gmail.com> (he/him) - HarshithaKP —
Harshitha K P <harshitha014@gmail.com> (she/her) - himself65 —
Zeyu «Alex» Yang <himself65@outlook.com> (he/him) - iansu —
Ian Sutherland <ian@iansutherland.ca> - JacksonTian —
Jackson Tian <shyvo1987@gmail.com> - JakobJingleheimer —
Jacob Smith <jacob@frende.me> (he/him) - jasnell —
James M Snell <jasnell@gmail.com> (he/him) - jkrems —
Jan Krems <jan.krems@gmail.com> (he/him) - joesepi —
Joe Sepi <sepi@joesepi.com> (he/him) - joyeecheung —
Joyee Cheung <joyeec9h3@gmail.com> (she/her) - juanarbol —
Juan José Arboleda <soyjuanarbol@gmail.com> (he/him) - JungMinu —
Minwoo Jung <nodecorelab@gmail.com> (he/him) - KhafraDev —
Matthew Aitken <maitken033380023@gmail.com> (he/him) - kuriyosh —
Yoshiki Kurihara <yosyos0306@gmail.com> (he/him) - kvakil —
Keyhan Vakil <kvakil@sylph.kvakil.me> - legendecas —
Chengzhong Wu <legendecas@gmail.com> (he/him) - linkgoron —
Nitzan Uziely <linkgoron@gmail.com> - LiviaMedeiros —
LiviaMedeiros <livia@cirno.name> - lpinca —
Luigi Pinca <luigipinca@gmail.com> (he/him) - lukekarrys —
Luke Karrys <luke@lukekarrys.com> (he/him) - Lxxyx —
Zijian Liu <lxxyxzj@gmail.com> (he/him) - marco-ippolito —
Marco Ippolito <marcoippolito54@gmail.com> (he/him) - marsonya —
Akhil Marsonya <akhil.marsonya27@gmail.com> (he/him) - mcollina —
Matteo Collina <matteo.collina@gmail.com> (he/him) - meixg —
Xuguang Mei <meixuguang@gmail.com> (he/him) - Mesteery —
Mestery <mestery@protonmail.com> (he/him) - mhdawson —
Michael Dawson <midawson@redhat.com> (he/him) - miladfarca —
Milad Fa <mfarazma@redhat.com> (he/him) - mildsunrise —
Alba Mendez <me@alba.sh> (she/her) - MoLow —
Moshe Atlow <moshe@atlow.co.il> (he/him) - mscdex —
Brian White <mscdex@mscdex.net> - MylesBorins —
Myles Borins <myles.borins@gmail.com> (he/him) - ovflowd —
Claudio Wunder <cwunder@gnome.org> (he/they) - oyyd —
Ouyang Yadong <oyydoibh@gmail.com> (he/him) - panva —
Filip Skokan <panva.ip@gmail.com> (he/him) - Qard —
Stephen Belanger <admin@stephenbelanger.com> (he/him) - RafaelGSS —
Rafael Gonzaga <rafael.nunu@hotmail.com> (he/him) - RaisinTen —
Darshan Sen <raisinten@gmail.com> (he/him) - rluvaton —
Raz Luvaton <rluvaton@gmail.com> (he/him) - richardlau —
Richard Lau <rlau@redhat.com> - rickyes —
Ricky Zhou <0x19951125@gmail.com> (he/him) - ronag —
Robert Nagy <ronagy@icloud.com> - ruyadorno —
Ruy Adorno <ruyadorno@google.com> (he/him) - rvagg —
Rod Vagg <rod@vagg.org> - ryzokuken —
Ujjwal Sharma <ryzokuken@disroot.org> (he/him) - santigimeno —
Santiago Gimeno <santiago.gimeno@gmail.com> - shisama —
Masashi Hirano <shisama07@gmail.com> (he/him) - ShogunPanda —
Paolo Insogna <paolo@cowtech.it> (he/him) - srl295 —
Steven R Loomis <srl295@gmail.com> - sxa —
Stewart X Addison <sxa@redhat.com> (he/him) - targos —
Michaël Zasso <targos@protonmail.com> (he/him) - theanarkh —
theanarkh <theratliter@gmail.com> (he/him) - TimothyGu —
Tiancheng «Timothy» Gu <timothygu99@gmail.com> (he/him) - tniessen —
Tobias Nießen <tniessen@tnie.de> (he/him) - trivikr —
Trivikram Kamat <trivikr.dev@gmail.com> - Trott —
Rich Trott <rtrott@gmail.com> (he/him) - vdeturckheim —
Vladimir de Turckheim <vlad2t@hotmail.com> (he/him) - vmoroz —
Vladimir Morozov <vmorozov@microsoft.com> (he/him) - VoltrexKeyva —
Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> (he/him) - watilde —
Daijiro Wachi <daijiro.wachi@gmail.com> (he/him) - XadillaX —
Khaidi Chu <i@2333.moe> (he/him) - yashLadha —
Yash Ladha <yash@yashladha.in> (he/him) - ZYSzys —
Yongsheng Zhang <zyszys98@gmail.com> (he/him)
Emeriti
Collaborator emeriti
- ak239 —
Aleksei Koziatinskii <ak239spb@gmail.com> - andrasq —
Andras <andras@kinvey.com> - AnnaMag —
Anna M. Kedzierska <anna.m.kedzierska@gmail.com> - AndreasMadsen —
Andreas Madsen <amwebdk@gmail.com> (he/him) - aqrln —
Alexey Orlenko <eaglexrlnk@gmail.com> (he/him) - bcoe —
Ben Coe <bencoe@gmail.com> (he/him) - bmeurer —
Benedikt Meurer <benedikt.meurer@gmail.com> - boneskull —
Christopher Hiller <boneskull@boneskull.com> (he/him) - brendanashworth —
Brendan Ashworth <brendan.ashworth@me.com> - bzoz —
Bartosz Sosnowski <bartosz@janeasystems.com> - calvinmetcalf —
Calvin Metcalf <calvin.metcalf@gmail.com> - chrisdickinson —
Chris Dickinson <christopher.s.dickinson@gmail.com> - claudiorodriguez —
Claudio Rodriguez <cjrodr@yahoo.com> - DavidCai1993 —
David Cai <davidcai1993@yahoo.com> (he/him) - davisjam —
Jamie Davis <davisjam@vt.edu> (he/him) - digitalinfinity —
Hitesh Kanwathirtha <digitalinfinity@gmail.com> (he/him) - dmabupt —
Xu Meng <dmabupt@gmail.com> (he/him) - dnlup
dnlup <dnlup.dev@gmail.com> - eljefedelrodeodeljefe —
Robert Jefe Lindstaedt <robert.lindstaedt@gmail.com> - estliberitas —
Alexander Makarenko <estliberitas@gmail.com> - eugeneo —
Eugene Ostroukhov <eostroukhov@google.com> - evanlucas —
Evan Lucas <evanlucas@me.com> (he/him) - firedfox —
Daniel Wang <wangyang0123@gmail.com> - Fishrock123 —
Jeremiah Senkpiel <fishrock123@rocketmail.com> (he/they) - gdams —
George Adams <gadams@microsoft.com> (he/him) - geek —
Wyatt Preul <wpreul@gmail.com> - gibfahn —
Gibson Fahnestock <gibfahn@gmail.com> (he/him) - glentiki —
Glen Keane <glenkeane.94@gmail.com> (he/him) - hashseed —
Yang Guo <yangguo@chromium.org> (he/him) - hiroppy —
Yuta Hiroto <hello@hiroppy.me> (he/him) - iarna —
Rebecca Turner <me@re-becca.org> - imran-iq —
Imran Iqbal <imran@imraniqbal.org> - imyller —
Ilkka Myller <ilkka.myller@nodefield.com> - indutny —
Fedor Indutny <fedor@indutny.com> - isaacs —
Isaac Z. Schlueter <i@izs.me> - italoacasas —
Italo A. Casas <me@italoacasas.com> (he/him) - jasongin —
Jason Ginchereau <jasongin@microsoft.com> - jbergstroem —
Johan Bergström <bugs@bergstroem.nu> - jdalton —
John-David Dalton <john.david.dalton@gmail.com> - jhamhader —
Yuval Brik <yuval@brik.org.il> - joaocgreis —
João Reis <reis@janeasystems.com> - joshgav —
Josh Gavant <josh.gavant@outlook.com> - julianduque —
Julian Duque <julianduquej@gmail.com> (he/him) - kfarnung —
Kyle Farnung <kfarnung@microsoft.com> (he/him) - kunalspathak —
Kunal Pathak <kunal.pathak@microsoft.com> - lance —
Lance Ball <lball@redhat.com> (he/him) - Leko —
Shingo Inoue <leko.noor@gmail.com> (he/him) - lucamaraschi —
Luca Maraschi <luca.maraschi@gmail.com> (he/him) - lundibundi —
Denys Otrishko <shishugi@gmail.com> (he/him) - lxe —
Aleksey Smolenchuk <lxe@lxe.co> - maclover7 —
Jon Moss <me@jonathanmoss.me> (he/him) - mafintosh —
Mathias Buus <mathiasbuus@gmail.com> (he/him) - matthewloring —
Matthew Loring <mattloring@google.com> - micnic —
Nicu Micleușanu <micnic90@gmail.com> (he/him) - mikeal —
Mikeal Rogers <mikeal.rogers@gmail.com> - misterdjules —
Julien Gilli <jgilli@netflix.com> - mmarchini —
Mary Marchini <oss@mmarchini.me> (she/her) - monsanto —
Christopher Monsanto <chris@monsan.to> - MoonBall —
Chen Gang <gangc.cxy@foxmail.com> - not-an-aardvark —
Teddy Katz <teddy.katz@gmail.com> (he/him) - ofrobots —
Ali Ijaz Sheikh <ofrobots@google.com> (he/him) - Olegas —
Oleg Elifantiev <oleg@elifantiev.ru> - orangemocha —
Alexis Campailla <orangemocha@nodejs.org> - othiym23 —
Forrest L Norvell <ogd@aoaioxxysz.net> (they/them/themself) - petkaantonov —
Petka Antonov <petka_antonov@hotmail.com> - phillipj —
Phillip Johnsen <johphi@gmail.com> - piscisaureus —
Bert Belder <bertbelder@gmail.com> - pmq20 —
Minqi Pan <pmq2001@gmail.com> - PoojaDurgad —
Pooja D P <Pooja.D.P@ibm.com> (she/her) - princejwesley —
Prince John Wesley <princejohnwesley@gmail.com> - psmarshall —
Peter Marshall <petermarshall@chromium.org> (he/him) - puzpuzpuz —
Andrey Pechkurov <apechkurov@gmail.com> (he/him) - refack —
Refael Ackermann (רפאל פלחי) <refack@gmail.com> (he/him/הוא/אתה) - rexagod —
Pranshu Srivastava <rexagod@gmail.com> (he/him) - rlidwka —
Alex Kocharin <alex@kocharin.ru> - rmg —
Ryan Graham <r.m.graham@gmail.com> - robertkowalski —
Robert Kowalski <rok@kowalski.gd> - romankl —
Roman Klauke <romaaan.git@gmail.com> - ronkorving —
Ron Korving <ron@ronkorving.nl> - RReverser —
Ingvar Stepanyan <me@rreverser.com> - rubys —
Sam Ruby <rubys@intertwingly.net> - saghul —
Saúl Ibarra Corretgé <s@saghul.net> - sam-github —
Sam Roberts <vieuxtech@gmail.com> - sebdeckers —
Sebastiaan Deckers <sebdeckers83@gmail.com> - seishun —
Nikolai Vavilov <vvnicholas@gmail.com> - shigeki —
Shigeki Ohtsu <ohtsu@ohtsu.org> (he/him) - silverwind —
Roman Reiss <me@silverwind.io> - starkwang —
Weijia Wang <starkwang@126.com> - stefanmb —
Stefan Budeanu <stefan@budeanu.com> - tellnes —
Christian Tellnes <christian@tellnes.no> - thefourtheye —
Sakthipriyan Vairamani <thechargingvolcano@gmail.com> (he/him) - thlorenz —
Thorsten Lorenz <thlorenz@gmx.de> - trevnorris —
Trevor Norris <trev.norris@gmail.com> - tunniclm —
Mike Tunnicliffe <m.j.tunnicliffe@gmail.com> - vkurchatkin —
Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com> - vsemozhetbyt —
Vse Mozhet Byt <vsemozhetbyt@gmail.com> (he/him) - watson —
Thomas Watson <w@tson.dk> - whitlockjc —
Jeremy Whitlock <jwhitlock@apache.org> - yhwang —
Yihong Wang <yh.wang@ibm.com> - yorkie —
Yorkie Liu <yorkiefixer@gmail.com> - yosuke-furukawa —
Yosuke Furukawa <yosuke.furukawa@gmail.com>
Collaborators follow the Collaborator Guide in
maintaining the Node.js project.
Triagers
- atlowChemi —
Chemi Atlow <chemi@atlow.co.il> (he/him) - Ayase-252 —
Qingyu Deng <i@ayase-lab.com> - bmuenzenmeyer —
Brian Muenzenmeyer <brian.muenzenmeyer@gmail.com> (he/him) - daeyeon —
Daeyeon Jeong <daeyeon.dev@gmail.com> (he/him) - F3n67u —
Feng Yu <F3n67u@outlook.com> (he/him) - himadriganguly —
Himadri Ganguly <himadri.tech@gmail.com> (he/him) - iam-frankqiu —
Frank Qiu <iam.frankqiu@gmail.com> (he/him) - marsonya —
Akhil Marsonya <akhil.marsonya27@gmail.com> (he/him) - meixg —
Xuguang Mei <meixuguang@gmail.com> (he/him) - mertcanaltin —
Mert Can Altin <mertgold60@gmail.com> - Mesteery —
Mestery <mestery@protonmail.com> (he/him) - preveen-stack —
Preveen Padmanabhan <wide4head@gmail.com> (he/him) - PoojaDurgad —
Pooja Durgad <Pooja.D.P@ibm.com> - RaisinTen —
Darshan Sen <raisinten@gmail.com> - VoltrexKeyva —
Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> (he/him)
Triagers follow the Triage Guide when
responding to new issues.
Release keys
Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys):
- Beth Griggs <bethanyngriggs@gmail.com>
4ED778F539E3634C779C87C6D7062848A1AB005C
- Bryan English <bryan@bryanenglish.com>
141F07595B7B3FFE74309A937405533BE57C7D57
- Danielle Adams <adamzdanielle@gmail.com>
74F12602B6F1C4E913FAA37AD3A89613643B6201
- Juan José Arboleda <soyjuanarbol@gmail.com>
DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7
- Michaël Zasso <targos@protonmail.com>
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600
- Myles Borins <myles.borins@gmail.com>
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8
- RafaelGSS <rafael.nunu@hotmail.com>
890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4
- Richard Lau <rlau@redhat.com>
C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C
- Ruy Adorno <ruyadorno@hotmail.com>
108F52B48DB57BB0CC439B2997B01419BD92F80A
- Ulises Gascón <ulisesgascongonzalez@gmail.com>
A363A499291CBBC940DD62E41F10027AF002F8B0
To import the full set of trusted release keys (including subkeys possibly used
to sign releases):
gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C gpg --keyserver hkps://keys.openpgp.org --recv-keys 141F07595B7B3FFE74309A937405533BE57C7D57 gpg --keyserver hkps://keys.openpgp.org --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201 gpg --keyserver hkps://keys.openpgp.org --recv-keys DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 gpg --keyserver hkps://keys.openpgp.org --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 gpg --keyserver hkps://keys.openpgp.org --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 gpg --keyserver hkps://keys.openpgp.org --recv-keys 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 gpg --keyserver hkps://keys.openpgp.org --recv-keys C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C gpg --keyserver hkps://keys.openpgp.org --recv-keys 108F52B48DB57BB0CC439B2997B01419BD92F80A gpg --keyserver hkps://keys.openpgp.org --recv-keys A363A499291CBBC940DD62E41F10027AF002F8B0
See Verifying binaries for how to use these keys to
verify a downloaded file.
Other keys used to sign some previous releases
- Chris Dickinson <christopher.s.dickinson@gmail.com>
9554F04D7259F04124DE6B476D5A82AC7E37093B
- Colin Ihrig <cjihrig@gmail.com>
94AE36675C464D64BAFA68DD7434390BDBE9B9C5
- Danielle Adams <adamzdanielle@gmail.com>
1C050899334244A8AF75E53792EF661D867B9DFA
- Evan Lucas <evanlucas@me.com>
B9AE9905FFD7803F25714661B63B535A4C206CA9
- Gibson Fahnestock <gibfahn@gmail.com>
77984A986EBC2AA786BC0F66B01FBB92821C587A
- Isaac Z. Schlueter <i@izs.me>
93C7E9E91B49E432C2F75674B0A78B0A6C481CF6
- Italo A. Casas <me@italoacasas.com>
56730D5401028683275BD23C23EFEFE93C4CFFFE
- James M Snell <jasnell@keybase.io>
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1
- Jeremiah Senkpiel <fishrock@keybase.io>
FD3A5288F042B6850C66B31F09FE44734EB7990E
- Juan José Arboleda <soyjuanarbol@gmail.com>
61FC681DFB92A079F1685E77973F295594EC4689
- Julien Gilli <jgilli@fastmail.fm>
114F43EE0176B71C7BC219DD50A3051F888C628D
- Rod Vagg <rod@vagg.org>
DD8F2338BAE7501E3DD5AC78C273792F7D83545D
- Ruben Bridgewater <ruben@bridgewater.de>
A48C2BEE680E841632CD4E44F07496B3EB3C1762
- Shelley Vohr <shelley.vohr@gmail.com>
B9E2F5981AA6E0CD28160D9FF13993A75599653C
- Timothy J Fontaine <tjfontaine@gmail.com>
7937DFD2AB06298B2293C3187D33FF9D0246406D
Security release stewards
When possible, the commitment to take slots in the
security release steward rotation is made by companies in order
to ensure individuals who act as security stewards have the
support and recognition from their employer to be able to
prioritize security releases. Security release stewards manage security
releases on a rotation basis as outlined in the
security release process.
- Datadog
- bengl —
Bryan English <bryan@bryanenglish.com> (he/him)
- bengl —
- NearForm
- RafaelGSS —
Rafael Gonzaga <rafael.nunu@hotmail.com> (he/him)
- RafaelGSS —
- NodeSource
- juanarbol —
Juan José Arboleda <soyjuanarbol@gmail.com> (he/him)
- juanarbol —
- Platformatic
- mcollina —
Matteo Collina <matteo.collina@gmail.com> (he/him)
- mcollina —
- Red Hat and IBM
- joesepi —
Joe Sepi <joesepi@ibm.com> (he/him) - mhdawson —
Michael Dawson <midawson@redhat.com> (he/him)
- joesepi —
License
Node.js is available under the
MIT license. Node.js also includes
external libraries that are available under a variety of licenses. See
LICENSE for the full
license text.
-
Главная
-
Инструкции
-
Node.js
-
Как установить Node.js на Windows: пошаговая инструкция
На JavaScript выполняется большая часть интерактивных элементов на сайтах и в мобильных приложениях. JavaScript отлично работает с HTML/CSS и интегрирован основные браузеры на рынке. Чистый JavaScript используется в вебе, а для общего применения JavaScript разработчики используют различные среды выполнения, например, Node.js.
Node.js — это среда выполнения кода JavaScript. Она позволяет использовать JavaScript как язык программирования общего назначения: создавать на нем серверную часть и писать полноценные десктопные приложения.
Основа Node.js — движок V8. Этот движок был разработан Google и используется в браузере Google Chrome. Он компилирует код JavaScript в машинный код, который понимает процессор. Однако, чтобы сделать из JavaScript язык общего назначения, одного движка недостаточно. Так, например, для создания серверной части нужно, чтобы язык умел работать с файлами, сетью и т.п. Для решения этой проблемы разработчики добавили к V8 дополнительные возможности, с помощью своего кода и сторонних библиотек. В итоге у них получился инструмент, который превращает JavaScript в язык общего назначения.
Node.js стала популярна среди разработчиков благодаря возможности создавать серверную и клиентскую часть на одном языке, скорости работы и NPM. В этом материале мы расскажем, как правильно установить Node.js на Windows 10.
Удаление старых версий
Перед установкой необходимо удалить старые версии среды выполнения, если они были ранее установлены. Наличие предыдущих версий может привести к возникновению конфликтов.
Проверим систему на наличие версий Node.js. Для этого в cmd
(чтобы ее запустить, нажмите Win+R, введите cmd
и нажмите Enter) выполняем команду nvm list
:
C:\Users\Timeweb>nvm list
18.9.0
18.8.0
16.17.0
Как видим, у нас установлено несколько версий. Удалим их:
- Выполняем команду
npm cache clean --force
. - В «Установка и удаление программ» удаляем Node.js.
- Перезагружаем компьютер.
- Удаляем следующие каталоги. Некоторые из них могут существовать, а некоторые, наоборот, отсутствовать:
- C:\Program Files (x86)\Nodejs
- C:\Program Files\Nodejs
- C:\Users\{User}\AppData\Roaming\npm
- C:\Users\{User}\AppData\Roaming\npm-cache
- C:\Users\{User}\.npmrc
- C:\Users\{User}\AppData\Local\Temp\npm-*
- Возвращаемся в командную строку и выполняем
nvm uninstall
к каждой версии, полученной с помощьюnvm list
:
C:\Users\Timeweb>nvm uninstall 18.9.0
Uninstalling node v18.9.0... doneC:\Users\Timeweb>nvm uninstall 18.8.0
Uninstalling node v18.9.0... done
C:\Users\Timeweb>nvm uninstall 16.17.0
Uninstalling node v18.9.0... done
Дополнительно проверим, что версии удалены:
C:\Users\Timeweb>nvm list
No installations recognized.C:\Users\Timeweb>where node
ИНФОРМАЦИЯ: не удается найти файлы по заданным шаблонам.
C:\Users\Timeweb>where npm
ИНФОРМАЦИЯ: не удается найти файлы по заданным шаблонам.
С помощью nvm-windows
Node Version Manager или сокращенно NVM — это диспетчер версий Node.js. Возможно, во время работы вам придется использовать различные версии Node и переключаться между ними. Версии часто меняются, поэтому при работе рекомендуется использовать диспетчер версий.
NVM — самый распространенный диспетчер версий, но, к сожалению, в Windows он не доступен, и вместо него используется адаптированный вариант nvm-windows.
- Зайдите в репозиторий nvm-windows на github.
- Загрузите установщик
nvm-setup.exe
последней версии диспетчера. - После загрузки осуществите установку.
- По окончании работы установщика откройте PowerShell от имени администратора и проверьте работоспособность NVM:
PS C:\Windows\system32 > nvm list
No installations recognized.
Теперь нужно выбрать версию Node.js, которую вы будете устанавливать на свой компьютер. Команда nvm list available
покажет частичный список доступных для загрузки версий:
Если для вашего проекта не требуется определенная версия, то рекомендуется выбрать последний LTS-выпуск. Риск возникновения проблем при работе с такой версией минимален. Если же вы хотите протестировать нововведения и улучшенные возможности, то вы можете загрузить последнюю версию. При этом не стоит забывать, что риск возникновения проблем с новейшей версией выше.
Установим последний LTS. Возьмем номер версии из результата nvm list available
и установим его с помощью nvm install
:
PS C:\Windows\system32> nvm install 16.17.0
Downloading node.js version 16.17.0 (64-bit)...
Extracting...
Complete
Creating C:\Users\Timeweb\AppData\Roaming\nvm\tempDownloading npm version 8.15.0… Complete
Installing npm v8.15.0…
Installation complete. If you want to use this version, type
nvm use 16.17.0
Установка завершена. В ряде случаев при установке nvm-windows может возникнуть проблема: nvm не загрузит диспетчер пакетов NPM. В этом случае рекомендуем воспользоваться следующим способом установки.
Как установить node.js с помощью официального установщика
- Зайдите на официальный сайт nodejs.org в раздел «Загрузка».
- Выберите и загрузите нужную версию.
- По завершению загрузки откройте файл, после чего начнется установка.
- Следуйте инструкциям установщика.
Установка node.js в WSL2
Если вы хотите использовать Node.js вместе с Docker, планируете работать с командной строке Bash или просто любите Linux, то имеет смысл задуматься об установке среды выполнения в WSL2.
WSL (Windows Subsystem for Linux) — это программная прослойка для запуска приложений, созданных под Linux-системы, на ОС Windows. Возможно, вам уже приходилось работать в WSL с приложениями, у которых нет Windows-версий. Ранее мы уже рассматривали установку Node.js на Ubuntu 20.04. Поэтому в этом разделе будет размещена инструкция по установке WSL 2 — об установке Node.js на Ubuntu читайте в статье «Как установить Node.js в Ubuntu 20.04».
Алгоритм установки WSL2 в Windows 10 зависит от версии операционной системы. Чтобы её узнать, нажмите Win+R и введите winver
. После этого откроется такое окно:
Алгоритм для версий старше 2004
В PowerShell от имени администратора выполняем следующие команды:
wsl --install
wsl --set-version Ubuntu 2
Для проверки результата воспользуемся командой wsl.exe -l -v
:
PS C:\WINDOWS\system32> wsl.exe -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
Алгоритм для версий младше 2004 (как минимум потребуется ОС версии 1903)
В PowerShell (от имени администратора) активируем подсистему Windows для Linux.
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Затем активируем функцию виртуальной машины:
dism.exe /online /enable-feature /featurename: VirtualMachinePlatform /all /norestart
После выполнения этих действий нужно перезагрузить компьютер.
Когда компьютера запустится, скачиваем и устанавливаем пакет обновлений ядра Linux. Загрузить его можно по здесь.
В PowerShell выберем 2 версию WSL в качестве основной:
wsl --set-default-version 2
Теперь скачаем какую-нибудь операционную систему на Linux. Сделать это можно прямо магазине приложений Microsoft Store:
По окончании установки вы сможете зайти в консоль установленной системы через меню поиска:
Заключение
Node.js — это популярная среда разработки, которая используется множеством крупных компаний: PayPal, Yahoo, Ebay, General Electric, Microsoft и Uber. В рамках этого материала мы рассмотрели способы как установить Node.js на Windows 10.
In this blog post, I will show you how to install NodeJS 13.8.0 and Node Package Manager (NPM) in Windows 10.
Node.JS is a popular server side scripting language which is based on JavaScript V8 Engine. As you know, JavaScript runs and restricted to a web browser. NodeJS is a enhanced version of JavaScript in which new capabilities were added to the language so that it can run on a server. To its core it is JavaScript programming language with added features that makes it possible to executes scripts on a server.
Good thing about NodeJS is that it is based on JavaScript. If you know JavaScript, you can become a full stack developer easily by upgrading your skill by learning NodeJS.
Installation options
You have two ways to install Node.js on your computer.
- Normal Windows installation using .msi installation file
- Extract the .zip file and run the executable
NPM, node package manager will be installed by default and a part of node installation process. You install node and you will get NPM by default.
So lets take the first step by installing NodeJS on your computer. Starting point is visiting NodeJS official website.
Visit NodeJS official website
This is the starting point and the official website. Currently, home page has the download link.
NodeJS Official Website
Lets explore the download page and get the setup files from there. This way you can see the other alternatives also.
NodeJS official download web page screenshot
Which file to download?
There are various options available for file download.
LTS vs Current release – which one you should choose?
LTS stands for long term support and the most stable release. You should choose this if you are deploying your application to the production environment.
Current release is the future LTS release which is still under development can have bugs and not recommend for production deployment. Its good for local installation and for testing out the new feature.
Normally for local development work I would choose the current release.
Go ahead and go to the current release tab download the file.
Download both the files, .zip version and the .msi version. Choose 32 or 64 bit based on your computer architecture.
We will use the .zip file to setup Node.js by extracting the files and executing it from command line terminal. File with extension .msi is the usual Windows 10 Installer.
Which option should you use to install Node.js?
Option 1 – Setup by running the .msi installation file
- Its a typical Windows installation and automated.
- No need to add entries in environment varaiable
Option 2 – Setup by extracting .zip file
- This method does not require admin access and can be used to install on nodejs on a system on which you dont have admin access such as you official laptop or desktop.
- Removing nodejs is as simple as deleting the folder.
- You will have to add entries in environment variable if you want to execute node command from any location in windows command prompt.
You can choose which option to follow, I will describe both the options below:
Option -1 – Install using Windows .msi installer
Step – 1 – Download the .msi installer file
Download the installer file from the download page. Its will be of the file name, something like, node-v10.15.1-x64.msi, where x64 means that the installer’s target platform is 64 bit machines and v10.15.1 is the version that will be installed.
Step – 2 – Execute the .msi installer file
Run the installer by double clicking on it. Accept the UAC warning if you see it, which would be something like, “Would you like the installer to make the changes to your system”. Click on yes to continue with the installation process.
Windows installer preparing to install message screenshot
NodeJS windows installation – security warning screenshot
Click on run to continue. This warning is the standard windows security warning for files downloaded over the internet.
NodeJS windows installation wizard
Click on next to continue
Step -3 -End user Licence agreement
Accept the end user licence agreement by clicking on the check box and clicking on next
NodeJS installation – End user agreement screenshot
Step – 4 – Select destination folder
You will have to select the destination folder, I normally accept the default. Click on next
NodeJS installation – Choose destination installation folder
Step – 5 – Custom Setup
Here you will have the option to change the features that will be be default. Accept the defaults by clicking next. I normally accept the defaults.
NodeJS Installation – Custom setup window screenshot
You will be asked if you want to install Tools for Native Modules. I normally leave it as it is Unchecked.
NodeJS installation – Tools for Native Modules Option
Step – 6 – Ready to install
Now you will see ready to install window. Click install to proceed.
NodeJS Installation – ready to install window screenshot
You will see the installation begin. Wait for the process to complete. At the end you will see installation complete message.
NodesJS installation progress window screenshot
At the end you will see installation complete message. Click finish to complete the process, This will have Node.js installed on your system and ready to use.
NodeJS installer – Installation complete message
Step – 7 – Check version of installed Nodejs
Open terminal and use the command node -v
to check the version of installed nodejs.
Nodejs – check version from command line
Option -2 – Install using extracting the .zip file
This is pretty straight forward process.
Step – 1 – Download the zip file
Download the .zip file from the official site.
Step – 2 – Unblock the file
Windows 10 blocks the files you have downloaded from internet by default for security reasons. Sometimes when you extract these blocked files, all the extracted files are also blocked and will not execute. Its better to unblock it before extracting it.
Right click on the downloaded zip file and click on properties. Check unblock at the bottom and click OK.
NodeJS zip file blocked
Step – 3 – Extract the downloaded file
Extract the download .zip file which will have the name something like node-v13.8.0-win-x64.zip, to any folder such as c:/nodejs.
You can use 7zip or Windows default unzip program. To use the windows default unzip program, right click on the zip file and select Extract All.
Step – 4 – Execute Nodejs command from command line
Now you can execute nodejs code using the command line. For this you will have to go to the extracted file root folder. for example C:\nodejs and execute the command from command line.
cd C:\nodejs
node -v
Step – 5 – Add nodejs folder to path (optional – you need admin access)
Alternatively, if you want to run the node command from anywhere, its better to add it the path variable. This is how you would do it.
Go to advanced setting
Search advanced setting in the taskbar search pane. Click on view advanced system settings.
Windows 10 taskbar search – advanced settings
You will see System properties window. Click on Environment variable.
Windows OS – System properties window
Add to path variable
Under System variable – click on path and click edit
Windows 10 – Environment variable
Click on New, and add the nodejs directory path such as c:/nodejs. This will change based on where you have extracted the file.
Click on ok continue and exit.
Now you can run nodejs command from any where.
Check the version of NPM installed
Go to windows terminal cmd or powershell and run the command
npm -v
to check the version of NPM installed.
NPM version in windows command line terminal
That’s it, now you have nodejs and npm installed on your system.
Thanks you…
Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения, поддерживает работу в операционных системах Windows, Linux, Unix-подобных.
Node применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS) и даже программировать микроконтроллеры (например, tessel, low.js и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.
Основные возможности
- Тестирование веб-приложений.
- Разнообразие инструментов для разработки.
- Поддержка TCP, UDP и Unix-socket.
- Высокая производительность.
- Поддержка HTML5 и Canvas без багов и зависаний.
- Предварительный запуск онлайн-игр.
- Поддержка отправки сообщений по электронной почте.
- Встроенные протоколы шифрования и хеширования данных.
- Работа с несколькими экземплярами.
- Консоль отладки приложения.
- Запись в журнал.
- Поддержка облачных сервисов.
- Поддержка мобильных девайсов.
- Синхронизация с хранилищем файлов.
- Интегрированные мультимедийные библиотеки.
- Подключение дополнительных модулей и других серверов на библиотеке «Node.js».
Удобство и интерфейс
Node.js не поддерживает графическую оболочку, поскольку в нем используется консольный режим. Этот подход позволяет обеспечить максимальную производительность сложных веб-приложений.
Node.js для Windows можно скачать на официальном сайте или на нашем по прямым ссылкам. Приложение набирает популярность среди разработчиков благодаря широким функциональным возможностям и универсальности.
«Изюминка» — разработка и тестирование приложений со сложной графикой и обеспечение огромного количества соединений для моделирования DDOS-атаки.
Достоинства
- Максимальная производительность.
- Поддержка облачных сервисов.
- Работа с HD-графикой и звуком высокого качества.
- Использование мобильных девайсов.
- Многофункциональность.
- Интегрирование дополнительных библиотек.
- Простая установка.
- Обеспечение большого количества одновременных соединений.
- Надежность.
- Встроенные протоколы SSL и TTL.
Недостатки
- Сложность реализации проектов.
- На обучение тратиться много времени.
Node подойдет для тестирования веб-приложений любого вида, а также для моделирования DDOS-атак, которые считаются наиболее опасными.