Node.js入门(含NVM、NPM、NVM的安装)-(转载)
Node.js的介紹
引擎
引擎的特性:
JS的內(nèi)核即引擎。因?yàn)橐嬗幸韵绿匦?#xff1a;
(1)轉(zhuǎn)化的作用:
-
汽油柴油等等->動(dòng)能
-
模板+數(shù)據(jù)--->頁(yè)面
-
js引擎:js 代碼--->機(jī)器碼\字節(jié)碼
(2)移植性。
有哪些引擎:
備注:Node是用V8引擎去解析 js,此時(shí),我們不用去考慮瀏覽器的兼容性問(wèn)題。
什么是 Node.js
1、官方解釋:
Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。 Node.js使用了一個(gè)事件驅(qū)動(dòng)、非阻塞式I/O的模型( Node.js的特性),使其輕量級(jí)又高效。 Node.js 的包管理器 nmp 是全球最大的開(kāi)源庫(kù)生態(tài)系統(tǒng)。
如上圖所示:
-
Node 內(nèi)部采用 Google Chrome 的 V8 引擎,作為 JavaScript 語(yǔ)言解釋器;
-
通過(guò)自行開(kāi)發(fā)的 libuv 庫(kù),調(diào)用操作系統(tǒng)資源。
2、非官方解釋:
Node.js:是 JavaScript 語(yǔ)言在服務(wù)器端的運(yùn)行環(huán)境(平臺(tái))。
3、運(yùn)行環(huán)境(平臺(tái))的含義:
-
首先,JavaScript 語(yǔ)言通過(guò) Node 在服務(wù)器運(yùn)行,在這個(gè)意義上,Node 有點(diǎn)像 JavaScript 虛擬機(jī)。
-
其次,Node 提供大量工具庫(kù),使得 JavaScript 語(yǔ)言能與操作系統(tǒng)互動(dòng)(比如讀寫(xiě)文件、新建子進(jìn)程),在這個(gè)意義上, Node 又是 JavaScript 的工具庫(kù)。
總結(jié):
Node.js 是一個(gè) JavaScript 的運(yùn)行環(huán)境(平臺(tái)),不是一門(mén)語(yǔ)言,也不是 JavaScript 的框架。
Node 的歷史
-
2008年左右,隨著 AJAX 的逐漸普及,Web 開(kāi)發(fā)逐漸走向復(fù)雜化,系統(tǒng)化;
-
2009年2月,Ryan Dahl 想要?jiǎng)?chuàng)建一個(gè)輕量級(jí),適應(yīng)現(xiàn)代 Web 開(kāi)發(fā)的平臺(tái);
-
2009年5月,Ryan Dahl 在 GitHub 中開(kāi)源了最初版本,同年11月,JSConf 就安排了 Node 講座;
-
2010年底,Joyent 公司資助,Ryan Dahl 也加入了該公司,專門(mén)負(fù)責(zé) Node 的開(kāi)發(fā);
-
2011年7月,在微軟的支持下登陸 Windows 平臺(tái)。PS:node 的生產(chǎn)環(huán)境基本是在 Linux 下。
據(jù) Node.js 創(chuàng)始人 Ryan Dahl 回憶,他最初希望采用 Ruby,但是 Ruby 的虛擬機(jī)效率不行。
注意:是 Node 選擇了 JavaScript,不是 JavaScript 發(fā)展出來(lái)了一個(gè) Node。
國(guó)內(nèi)外的應(yīng)用情況
以下幾個(gè)項(xiàng)目都用到了 Node:
-
https://github.com/nodejs/node-v0.x-archive/wiki/Projects,-Applications,-and-Companies-Using-Node
-
https://nodejs.org/en/foundation/members/
-
https://github.com/NetEase/pomelo
還有以下幾個(gè)網(wǎng)站:
-
LinkedIn移動(dòng)版From RoR to Node.js, base on Joyent
-
Paypal From Java to Node.js
-
Twitter的隊(duì)列:收集需要保存的Tweets,傳給負(fù)責(zé)寫(xiě)入的進(jìn)程
-
知乎的推送
-
網(wǎng)易、阿里、各種創(chuàng)業(yè)團(tuán)隊(duì)等
Node.js的主要應(yīng)用領(lǐng)域
-
RESTFul API
-
實(shí)時(shí)通信:如消息推送等
-
高并發(fā)
-
I/O阻塞
知名度較高的Node.js開(kāi)源項(xiàng)目
-
express:Node.js中最有名的web服務(wù)器框架。
-
PM2:node 本來(lái)是單進(jìn)程的,PM2可以實(shí)現(xiàn)和管理多進(jìn)程。
-
jade:非常優(yōu)秀的模板引擎,不僅限于 js 語(yǔ)言。
-
CoffeeScript:用簡(jiǎn)潔的方式展示 JavaScript 優(yōu)秀的部分。
-
Atom:文本編輯器。
-
socket.io:實(shí)時(shí)通信框架。
-
mocha:功能強(qiáng)大的 node.js 測(cè)試框架。
Node.js 的環(huán)境配置
Node.js 安裝包(不推薦)
去 Node.js 的官網(wǎng)下載安裝包:
我們也可以在https://nodejs.org/en/download/releases/上下載歷史版本。
注意,我們以一定要用偶數(shù)版(V4、V6等),不要用奇數(shù)版(比如V5),因?yàn)槠鏀?shù)版不穩(wěn)定。
我們并不推薦直接采用 Node.js.msi 安裝包進(jìn)行安裝,不方便 node 的更新,原因如下:
-
以前版本安裝的很多全局的工具包需要重新安裝;
-
無(wú)法回滾到之前的版本;
-
無(wú)法在多個(gè)版本之間切換(很多時(shí)候我們要使用特定版本)。
因此,我們暫時(shí)先不用安裝 Node.js,稍后用 NVM 的方式來(lái)安裝 Node.js。
通過(guò) NVM 安裝Node.js(推薦)
NVM:node.js version manager,用來(lái)管理 node 的版本。安裝的步驟如下。
(1)我們?nèi)ス倬W(wǎng)下載 NVM 的安裝包:
下載下來(lái)后,直接解壓到 D:\web目錄下:
(2)在上面的目錄中,新建一個(gè)settings.txt文件,里面的內(nèi)容填充如下:
root: D:\web\nvm path: D:\web\nodejs arch: 64 proxy上方內(nèi)容的解釋:
-
root 配置為:當(dāng)前 nvm.exe 所在的目錄
-
path 配置為:node 快捷方式所在的目錄
-
arch 配置為:當(dāng)前操作系統(tǒng)的位數(shù)(32/64)
-
proxy 不用配置
(3)配置環(huán)境變量:
-
NVM_HOME = D:\web\nvm(當(dāng)前 nvm.exe 所在目錄)
-
NVM_SYMLINK = D:\web\nodejs (node 快捷方式所在的目錄)
-
PATH += ;%NVM_HOME%;%NVM_SYMLINK%
配置成功后,重啟資源管理器。
驗(yàn)證:(在 cmd 中輸入命令)
(1)輸入nvm命令查看環(huán)境變量是否配置成功:
(2)輸入 nvm ls,查看已安裝的所有 node 版本。
(3)輸入 nvm -v,查看 已安裝的 nvm 版本。
(4)輸入 node -v,查看正在使用的 node 版本。
- 參考鏈接:安裝npm,nvm,node
如果 node 安裝失敗,可以參考上面這個(gè)鏈接。
Mac 下安裝 NVM
打開(kāi) 終端.app,輸入:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bashsource ~/.nvm/nvm.sh安裝以后,nvm的執(zhí)行腳本,每次使用前都要激活,建議將其加入~/.bashrc文件(假定使用Bash)。激活后,就可以安裝指定版本的Node。
也可以使用 Homebrew 安裝(更方便,維護(hù)更簡(jiǎn)單):
brew install nvmNVM 的常用命令
安裝指定版本的node:
nvm install 版本號(hào) [arch]比如:nvm install 4.2.2。
卸載指定版本node:
nvm uninstall 版本號(hào)切換使用指定版本的node:
nvm use 版本號(hào) [arch]查看當(dāng)前使用的 nvm 版本:
nvm -v查看本地安裝的所有的 node 版本:
nvm list|lsNode 的常用命令
在 查看 node 的版本:
執(zhí)行腳本字符串:
運(yùn)行腳本文件:
查看幫助:
進(jìn)入 REPL 環(huán)境:
REPL 的全稱:Read、Eval、 Print、Loop。類(lèi)似于瀏覽器的控制臺(tái)。
如果要退出 REPL 環(huán)境,可以輸入.exit 或 process.exit()。
在 VS Code 里,我們可以在菜單欄選擇“幫助->切換開(kāi)發(fā)人員工具”,打開(kāi)console控制臺(tái)。
包和 NPM
什么是包
由于 Node 是一套輕內(nèi)核的平臺(tái),雖然提供了一系列的內(nèi)置模塊,但是不足以滿足開(kāi)發(fā)者的需求,于是乎出現(xiàn)了包(package)的概念:
與核心模塊類(lèi)似,就是將一些預(yù)先設(shè)計(jì)好的功能或者說(shuō) API 封裝到一個(gè)文件夾,提供給開(kāi)發(fā)者使用。
Node 本身并沒(méi)有太多的功能性 API,所以市面上涌現(xiàn)出大量的第三方人員開(kāi)發(fā)出來(lái)的 Package。
包的加載機(jī)制
如果 Node中自帶的包和第三方的包名沖突了,該怎么處理呢?原則是:
-
先在系統(tǒng)核心(優(yōu)先級(jí)最高)的模塊中找;
-
然后到當(dāng)前項(xiàng)目中 node_modules 目錄中找。
比如說(shuō):
requiere(`fs`)那加載的肯定是系統(tǒng)的包。所以,我們盡量不要?jiǎng)?chuàng)建一些和現(xiàn)有的包重名的包。
NPM的概念
包的生態(tài)圈一旦繁榮起來(lái),就必須有工具去來(lái)管理這些包。NPM 應(yīng)運(yùn)而生。
NPM:Node Package Manager。官方鏈接: https://www.npmjs.com/
隨著時(shí)間的發(fā)展,NPM 出現(xiàn)了兩層概念:
-
一層含義是 Node 的開(kāi)放式模塊登記和管理系統(tǒng),亦可以說(shuō)是一個(gè)生態(tài)圈,一個(gè)社區(qū)。
-
另一層含義是 Node 默認(rèn)的模塊管理器,是一個(gè)命令行下的軟件,用來(lái)安裝和管理 Node 模塊。
NPM 的安裝(不需要單獨(dú)安裝)
NPM 不需要單獨(dú)安裝。默認(rèn)在安裝 Node 的時(shí)候,會(huì)連帶一起安裝 NPM:
NVM、Node、NPM 安裝之后,目錄分布如下:
輸入 npm -v,查看 npm 的版本:
如果上方命令無(wú)效,可能是之前的 node 并沒(méi)有完全安裝成功。解決辦法:https://segmentfault.com/a/1190000011114680
另外,Node 附帶的 NPM 可能不是最新版本,可以用下面的命令,更新到最新版本:
$ npm install npm -gNRM的安裝
由于 NPM 的資源都在國(guó)外,有時(shí)候會(huì)被墻,導(dǎo)致無(wú)法下載或者很慢。此時(shí)可以用到NRM。
NRM:Node Registry Manager。作用是:切換和管理包的鏡像源。項(xiàng)目地址:https://www.npmjs.com/package/nrm
安裝 NRM:
npm?install?-g?nrmNRM 的常用命令:
nrm ls //顯示全部的鏡像nrm use taobao // 使用淘寶的鏡像效果入下:
推薦的國(guó)內(nèi)加速鏡像:https://npm.taobao.org/
轉(zhuǎn)載于:https://www.cnblogs.com/-colin/p/10381672.html
總結(jié)
以上是生活随笔為你收集整理的Node.js入门(含NVM、NPM、NVM的安装)-(转载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 模二多项式环 及 BCH码 的纯pyth
- 下一篇: 基于YOLOv5的车辆识别系统