目錄
一、Node.js簡介及其下載地址
1、編譯器、運行環(huán)境、開發(fā)環(huán)境的區(qū)別
2、Node.js與JavaScript、TypeScript
3、Node.js與瀏覽器
二、單擊網(wǎng)站的Downloads,選擇對應(yīng)的系統(tǒng)下載Nodejs
三、Node.js安裝程序的安裝及安裝選項設(shè)置
四、Node.js常用配置(Configuration,設(shè)置)
1、修改npm的包的全局的安裝路徑和緩存路徑
2、配置鏡像源(鏡像站)
3、配置包管理工具
五、node.js的運行
最新Node.js安裝詳細教程及node.js配置
一、Node.js簡介及其下載地址
1、編譯器、運行環(huán)境、開發(fā)環(huán)境的區(qū)別
? ? ? ?關(guān)于編譯器與開發(fā)環(huán)境的關(guān)系參見編譯器(Compiler)及C/C++編譯器安裝(c+安裝)中的一、五、。
? ? ? ?運行時環(huán)境(運行環(huán)境、Runtime Environment、run-time system)是一個編譯器(廣義上講)角色并附加一些其它資源以實現(xiàn)代碼的運行。編譯器(compiler)是運行環(huán)境的核心。Node.js是運行環(huán)境,實際上,一般來講,我們安裝某種語言也是獲得該語言的運行環(huán)境(比如:python的安裝)。運行時環(huán)境與編譯器之間的關(guān)系見圖1-1所示。
?圖1-1 運行時環(huán)境與編譯器
? ? 我們前面提到的IDE(Integrated Development Environment,集成開發(fā)環(huán)境)是開發(fā)環(huán)境(Development Environment),比如:PyCharm、VS、VS Code等。開發(fā)環(huán)境側(cè)重代碼開發(fā),運行代碼時會調(diào)用編譯器及其它資源,開發(fā)環(huán)境的概念更廣,可以包含運行環(huán)境(可以把運行環(huán)境集成到開發(fā)環(huán)境中),但一般來講,開發(fā)環(huán)境與運行環(huán)境是調(diào)用關(guān)系(開發(fā)環(huán)境調(diào)用運行環(huán)境)。
? ? ? ?從范圍上講,開發(fā)環(huán)境>運行環(huán)境>編譯器,從核心作用上講,編譯器(或運行環(huán)境)>開發(fā)環(huán)境。
2、Node.js與JavaScript、TypeScript
? ? ? JavaScript(簡稱“JS”)是一種輕量級的解釋性的程序語言,不需要編譯器(實際可以說是借助其它編譯器),借助web瀏覽器(Browser)或Node.js等進行編譯和執(zhí)行,TypeScript是由JavaScript發(fā)展出來的,且有編譯器,但TypeScript 編譯器只是負責(zé)把 TypeScript 代碼編譯成 JavaScript 代碼,然后,再借助瀏覽器或Node.js等進行編譯和執(zhí)行。
? ? ? Node.js是一個JavaScript運行時環(huán)境(Runtime Environment),可以說,JavaScript借助Node.js的編譯器在機器上運行。
3、Node.js與瀏覽器
? ? ? 服務(wù)器(Server)是指網(wǎng)絡(luò)中能對其它機器提供某些服務(wù)的計算機系統(tǒng),這種服務(wù)通常被稱為服務(wù)端(Server,伺服端),服務(wù)器可以看作是一種高性能的計算機(Computer)。
? ? ? ?服務(wù)端(Server,伺服端)與客戶端(Client,用戶端)是相對而言的,服務(wù)端是為客戶端服務(wù)的,服務(wù)端是一種有針對性的服務(wù)程序,為客戶端提供資源,保存客戶端數(shù)據(jù)。Web瀏覽器(Browser)是一種客戶端(Client,用戶端)的應(yīng)用程序,主要功能是將用戶向服務(wù)器請求的Web資源呈現(xiàn)出來,顯示在瀏覽器窗口中。
? ? ? ?JavaScript可以在瀏覽器中運行,也即瀏覽器支持JavaScript的編譯,因而,瀏覽器(Browser)也可以看作是JavaScript的一種運行時環(huán)境,是一種在客戶端的運行環(huán)境,JavaScript借助瀏覽器的編譯器在機器上運行。
? ? ? ?Node.js也是JavaScript運行時環(huán)境(Runtime Environment),能使JavaScript運行在服務(wù)端的運行環(huán)境。簡單地講,Node.js可以使JavaScript像python/java一樣在機器上運行,而不依賴瀏覽器。Node.js是一個基于 Chrome V8 引擎的 JavaScript 運行時環(huán)境。
? ? ? ?當然,無論是Web瀏覽器(Browser),還是Node.js,編譯器(compiler)只是它們比較核心的組成部分,它們還有其它的功能和各自的特點,這里不進一步展開。另外,除特別說明以為,這里的編譯器是取廣義的概念(即把代碼編譯成機器碼的統(tǒng)稱)。
? ? ? ?Node.js的下載地址見表1-1。
表1-1 Nodejs下載網(wǎng)址
Node.js下載網(wǎng)址 |
https://nodejs.org/en |
二、單擊網(wǎng)站的Downloads,選擇對應(yīng)的系統(tǒng)下載Nodejs
? ? ? ? 打開上面表1-1中的下載鏈接,我們可以看到頁面中有兩個Downloads位置,如圖2-1所示。
?圖2-1 ?Node.js頁面
? ? ?圖2-1中①紅色箭頭所指處是默認兩個版本的下載:64位windows系統(tǒng)的LTS(Long Time Support,經(jīng)過測試,相對完善、穩(wěn)定的版本) 和Current (處于內(nèi)部測試中,可能不完善的最新版) 的node.js。
? ? ? ?我們可以點擊圖2-1中②紅色箭頭所指處的Downloads,進入的頁面如圖2-2所示,提供了針對不同操作系統(tǒng)和硬件系統(tǒng)的Node.js的程序。
?圖2-2 ?不同操作系統(tǒng)和硬件系統(tǒng)的Node.js安裝程序
? ? ? ?我們可以選擇LTS下對應(yīng)的Node.js程序。圖2-2中提供了適合Windows、macOS、Linux系統(tǒng)的Node.js程序,圖2-2中紅框部分是默認的下載,紅框下面是具體參數(shù)對應(yīng)的下載。比如:紅框中Windows的默認下載也實際是相當于紅框下面的Windows Installer(.msi)→64-bit的下載。
? ? ? ? 圖2-2中的參數(shù)名稱代表的含義的說明參見下面1、2、3、。
1、Installer、Binary、Source
? ? ? ?Installer表示是安裝程序,下載安裝后生成二進制的可執(zhí)行文件;
? ? ? ?Binary是已經(jīng)編譯過的二進制的可執(zhí)行文件,通常下載解壓后就能使用;
? ? ? ?Source是源代碼(源碼),即沒有編譯過的文件,需要編譯后才是可執(zhí)行文件。
? ? ? ?注意,這里講的可執(zhí)行文件是指已經(jīng)被編譯處理過且能執(zhí)行的文件(也稱為機器碼文件或機器碼構(gòu)成的二進制文件)。
? ? ? ?而我們需要下載可執(zhí)行文件Node.js,以便運行JavaScript(JS),因而,我們可以選擇圖2-2中帶有Installer或Binary的程序。
2、.msi、.zip、.pkg、.tar.gz
? ? ? .msi為windows的安裝文件格式;
? ? ? .zip為壓縮文件格式;
? ? ? .pkg常用于macOS 系統(tǒng)的安裝文件格式;
? ? ? .tar.gz是一個壓縮包,類似.zip壓縮包,但.tar.gz格式適合Linux操作系統(tǒng)、MacOSX系統(tǒng)(基于UNIX核心的系統(tǒng))。
3、32-bit、64-bit(x64)、ARM64、ARMv7、ARMv8
? ? ? ?32-bit、64-bit(x64)、ARM64、ARMv7、ARMv8這些參數(shù)與硬件cpu有關(guān)。
? ? ? ?64-bit(x64)是指64位操作系統(tǒng),基于64位處理器,下載的程序適合64位操作系統(tǒng)。鼠標右鍵我的電腦,左鍵單擊菜單中的屬性,可以查看自己電腦的硬件配置,自己電腦的操作系統(tǒng)的類型如下圖2-3紅框所示。
?圖2-3 電腦規(guī)格
? ? ? ?32-bit是指32位操作系統(tǒng),基于32位處理器,下載的程序適合32位操作系統(tǒng)。
? ? ? ?Arm64是AArch64狀態(tài)下的處理器體系結(jié)構(gòu),下載的安裝程序適合ARM公司推出的Arm64體系的處理器,基于64位處理器。
? ? ? ?ARMv7為ARM公司的處理器架構(gòu),含32位和16位兩個指令集,架構(gòu)可以理解為一種技術(shù)規(guī)范,根據(jù)架構(gòu)設(shè)計處理器;
? ? ? ?ARMv8為ARM公司的處理器架構(gòu),含64位和32位兩個指令集;
? ? ? ?圖2-2中的ARMv7/ARMv8表示程序適合這種架構(gòu)的處理器。
? ? ? ?以windows為例,我們可以選擇64-bit的Windows Installer (.msi)的Node.js安裝程序。
4、Additional Platforms
? ? ? ?下載頁面還提供了適合其它平臺的Node.js,如圖2-4中的Additional Platforms下的選項對應(yīng)的下載。
?圖2-4 其它平臺與其它下載及安裝
Docker Image
? ? ? ?Docker鏡像平臺,Docker是對軟件和其依賴環(huán)境的標準化打包。
Linux on Power LE Systems
? ? ? ?運行在IBM專有的Power LE系列芯片設(shè)計的硬件系統(tǒng)上的linux系統(tǒng)。
Linux on System z
? ? ? 運行在 IBM 的System z系列大型機的linux系統(tǒng)。
AIX on Power Systems
? ? ? 運行在IBM專有的Power系列芯片設(shè)計的小型機硬件系統(tǒng)上的一套類UNIX操作系統(tǒng)。
? ? ? ?圖2-4上述選項的右側(cè)為下載的文件,后面三項是針對IBM服務(wù)器的Node.js程序,圖2-4中紅框部分為其它版本的下載及安裝說明。
三、Node.js安裝程序的安裝及安裝選項設(shè)置
? ? ? ?這里,我們以Windows操作系統(tǒng)下Node.js的安裝為例。我們下載Windows Installer(.msi)→64-bit對應(yīng)的Nodejs,也即點擊圖3-1紅箭頭所指的其中一個下載都可以。
?圖3-1 各類型的nodejs安裝程序
1、運行Node.js Setup
? ? ? ? 運行上面下載的nodejs安裝程序,出現(xiàn)歡迎的安裝界面,選擇next,進入下面圖3-2的安裝界面。
?圖3-2? Node.js安裝
? ? ? 勾選I accept the terms in the License Agreement,單擊圖3-2的Next,進入圖3-3所示的Node.js安裝位置設(shè)置的界面。
2、安裝位置設(shè)置
?圖3-3? Node安裝位置
? ? ? ?可以自定義Node.js的安裝路徑,設(shè)置完成后,單擊Next,進入圖3-4所示的Node安裝選項設(shè)置的界面。
3、安裝選項設(shè)置
?圖3-5? Node安裝選項設(shè)置
? ? ? ? Node默認安裝以下五項基本功能。
(1)Node.js runtime
? ? ? Node運行環(huán)境,這也是安裝Node的核心功能。點擊左側(cè)+,出現(xiàn)它的一個subfeature(子功能):event tracing(事件跟蹤,跟蹤捕獲某些事件的數(shù)據(jù),通過這些數(shù)據(jù)我們可以做進一步的分析)。
(2)corepack manager
? ? ? ?Node.js的通用包管理器(the universal package manager for Node.js),也稱為包管理器的管理器,也就是一些包管理器可以統(tǒng)一用corepack來管理包,扮演一個通用的角色。
? ? ? ?Node.js 的包管理器(包管理工具),提供了對 Node.js 包的查找、下載、安裝、卸載的管理功能。包(package)可以理解為是別人已經(jīng)寫好的代碼,我們通過包管理器下載包后安裝到電腦中就可以直接引用這些代碼,避免我們重復(fù)造輪子。
? ? ? ?常用Node.js的包管理器有npm、yarn、pnpm、cnpm等,這些包管理器可以統(tǒng)一用corepack來發(fā)揮它們的功能,相當于corepack兼容了npm、yarn、pnpm、cnpm等。
? ? ? ? Node.js的包管理器類似python的pip,pip是python的包管理器。
(3)npm package manager
? ? ? ? npm(Node Package Manager)包管理器,是JavaScript運行時環(huán)境Node.js推薦的包管理器。
(4)Online documentation shortcuts
? ? ? ? 在線文檔快捷方式,在Windows桌面的開始菜單(左下角)中創(chuàng)建在線文檔快捷方式,可以鏈接到Node.js的在線文檔和Node.js網(wǎng)站。
(5)Add to PATH
? ? ? ?添加到Windows的環(huán)境變量。點擊左側(cè)+,出現(xiàn)它的subfeature(子功能):Node.js and npm 和npm modules(也即把Node.js、npm 、npm modules添加到環(huán)境變量,npm modules為由npm全局安裝的模塊或庫(可以統(tǒng)稱為包))。
? ? ? ?環(huán)境變量是在操作系統(tǒng)中一個具有特定名字的對象,它代表了一個或者多個應(yīng)用程序所將使用到的信息。當要求系統(tǒng)運行一個程序而沒有告訴它程序所在的完整路徑時,系統(tǒng)除了在當前目錄下面尋找此程序外,還會到環(huán)境變量path中指定的路徑去找可運行的對象。
? ? ? ?環(huán)境變量中的系統(tǒng)變量是對所有用戶有效,用戶變量是對當前登錄的windows賬號有效,當系統(tǒng)變量查找不到時,會到當前用戶變量中查找。另外,環(huán)境變量名稱是不區(qū)分大小寫的,比如:PATH和path,兩個名稱是一樣的。
? ? ? ? 我們點擊上述某項功能的 圖標,彈出該項安裝設(shè)置的菜單,有以下選項可供選擇:
Will be installed on local hard drive
? ? ? ?安裝本功能(但不安裝其子功能)到本地硬盤。
Entire feature will be installed on local hard drive
? ? ? ?安裝整個功能(本功能及其子功能)到本地硬盤。
Will be installed to run from network
? ? ? ?安裝本功能(但不安裝其子功能) 以便從網(wǎng)絡(luò)上運行。
Entire feature will be installed to run from network
? ? ? ? 安裝本功能及其子功能以便從網(wǎng)絡(luò)上運行。
Feature will be installed when required
? ? ? ? 功能將按需要而安裝。
Entire feature will be unavailable
? ? ? ? 整個功能(本功能及其子功能)將不被安裝。
? ? ? ?在安裝時,上面各項功能的安裝默認為Entire feature will be installed on local hard drive,因而,我們可以采用默認的設(shè)置,圖3-5中不進行安裝設(shè)置,單擊圖3-5中 Next(其他Reset是重置,恢復(fù)到默認,Disk Usage是硬盤使用情況)進入圖3-6可選工具的安裝。
4、可選工具的安裝
? ? ? ?在Node使用中,我們用npm下載安裝某種包或模塊,在安裝時這種包或模塊需要被C/C++編譯,這時候需要用到python或VS(Visual Studio),因而,機器上需要安裝這兩種工具(在這里被稱為Build Tools),若沒有安裝這兩種工具,在安裝這種包或模塊時會提示異常。
?圖3-6? 可選工具的安裝
? ? ? ?在圖3-6中勾選Automatically install the necessary tools選項,會自動下載安裝python和VS,也會安裝Windows的Chocolatey包管理器。
? ? ? ?勾選后,實際是先自動安裝Chocolatey,然后再利用Chocolatey包管理器下載安裝python和VS。Chocolatey是一款專為Windows系統(tǒng)開發(fā)的、基于NuGet的包管理器工具,類似于Node.js的npm,python的pip。在windows中使用Chocolatey能自動下載安裝適合windows的應(yīng)用程序。
? ? ?我們也可以根據(jù)圖3-6中的鏈接的頁面說明,自行根據(jù)自己的需要安裝python、VS、Chocolatey。比如:VS是收費的,我們可以選擇手動安裝社區(qū)版的VS,若python我們已經(jīng)安裝,我們可以不安裝最新版本的python。
? ? ? ? 考慮到安裝速度,我們也可以不勾選上述選項,暫時不安裝這些工具,安裝完Node后自己手動安裝,或以后根據(jù)需要來安裝。
? ? ? ?若勾選上述選項后,在Node.js安裝完成后,會彈出一個腳本(script)運行窗口提示自動安裝python、VS、Chocolatey,具體見下面5、中的圖3-10、3-11、3-12。
? ? ? ? 單擊圖3-6中 Next,進入圖3-7 node install界面。
5、安裝
?圖3-7? node準備安裝
? ? ? ? 點擊圖3-7的Install,進入圖3-8所示的Node.js install進度界面。
?圖3-8? Node.js安裝進度
? ? ? ? ? 圖3-8安裝進度完成后,出現(xiàn)圖3-8所示的Node.js安裝完成的提示界面。
?圖3-9? Nodejs安裝完成
? ? ? ? 至此,Node.js安裝程序的安裝實際已經(jīng)完成。
? ? ? ?若上面4、中圖3-6勾選了Automatically install the necessary tools選項,我們點擊圖3-9中的Finsh,則出現(xiàn)下面圖3-10、3-11、3-12的腳本(script)安裝可選工具(構(gòu)建工具、Build Tools)的提示窗口,若上面4、中圖3-6未勾選,則不會出現(xiàn)下面的安裝提示。
?圖3-10 腳本安裝python和VS的提示窗口
? ? ? ?圖3-10提示腳本安裝python和VS(Visual Build)的提示與介紹,按任意鍵出現(xiàn)另一個腳本安裝Chocolatey的提示與介紹,如圖3-11所示。
?圖3-11 腳本安裝Chocolatey的提示窗口
? ? ? 圖3-11按任意鍵出現(xiàn)下面圖3-12的Windows的PowerShell命令行窗口,顯示Chocolatey、python、VS安裝情況。
?圖3-11 ?Chocolatey、python、VS安裝
? ? ? 從圖3-11中的提示可知,Chocolatey安裝后,會自動下載并安裝python、VS。當Chocolatey、python、VS安裝完成后,可以關(guān)閉圖3-11。
? ? ? ?至此,Node.js、Chocolatey、python、VS已成功安裝。
? ? ? ?我們可以使用win+r快捷鍵(也即Windows+R)打開運行窗口,輸入cmd并確定,打開cmd命令行窗口,在命令行窗口中輸入node -v,提示Node的版本信息,在命令行窗口中輸入npm -v,提示npm的版本信息,表示安裝成功。
四、Node.js常用配置(Configuration,設(shè)置)
? ? ? ? 以下配置(Configuration)可以根據(jù)我們的需要而選定。
1、修改npm的包的全局的安裝路徑和緩存路徑
? ? ? ?Node安裝完成后,使用npm包管理器安裝模塊、庫(可以統(tǒng)稱為包),先到全局的緩存路徑的文件夾中查找包是否存在,若存在,直接把包安裝到包的安裝路徑里,不需要重新下載,若不存在,則把包下載到緩存路徑中存放,并把包安裝到安裝路徑里。
? ? ? ?包的全局的安裝路徑和緩存路徑是默認在C盤,考慮到c盤為系統(tǒng)盤,避免占用空間,我們可以指定全局的安裝路徑和緩存路徑。
(1)默認的全局的安裝路徑和緩存路徑
? ? ? ? npm安裝模塊或庫(可以統(tǒng)稱為包)常用的兩種命令形式:
? ? ? ? ? ? ? ? ? ? ?本地安裝(local):npm install 名稱
? ? ? ? ? ? ? ? ? ? ?全局安裝(global):npm install 名稱 -g
? ? ? ?卸載模塊或庫上面的命令用uninstall即可。本地安裝和全局安裝不僅安裝方式和安裝位置不同,而且本地安裝的包需要通過 require() 來引入,全局安裝的包可以直接在命令行里使用。本地安裝解決了不同項目對不同包的版本依賴問題。
? ? ? ?我們使用win+r快捷鍵(也即Windows+R)打開運行窗口,輸入cmd并確定,打開cmd命令行窗口,在cmd命令行窗口中用npm安裝包,若選擇本地安裝,則在cmd命令行提示的當前路徑下創(chuàng)建node_modules文件夾,該文件夾存放安裝的包 (也可以通過cd命令改變路徑,并在該路徑下安裝)。
?圖4-1 cmd命令行窗口中用npm本地安裝包
? ? ? ?圖4-1的命令npm install jquery是本地安裝jquery在C:\Users\HP\node_modules里,本地安裝的包的安裝路徑可以用命令npm root查看。另外,注意,在其他終端窗口進行本地安裝可能路徑不同。
? ? ? ? 若選擇全局安裝,則在全局安裝的默認路徑下創(chuàng)建node_modules文件夾,存放安裝的包。
?圖4-2 cmd命令行窗口中用npm全局安裝包
? ? ? ?圖4-2的命令npm install jquery -g是全局安裝,安裝jquery在默認的全局安裝路徑里,這里默認的包的全局安裝路徑在上面node.js安裝完成后已經(jīng)默認好了,我們可以用命令npm get prefix(或npm config get prefix)查看包的全局安裝路徑(也可以用命令npm root -g查看),我們可以用命令npm get cache(或npm config get cache)查看全局的緩存路徑。如圖4-3所示查看包的全局的安裝路徑和緩存路徑。
? ?圖4-3中的全局的安裝路徑C:\Users\HP\AppData\Roaming\npm和緩存路徑C:\Users\HP\AppData\Local\npm-cache是node.js安裝完成后已經(jīng)默認的,其中,HP是用戶名文件夾,這個用戶名是windows登錄的賬戶,可以在C:\Users中查看這個用戶名。
?圖4-3包的全局的安裝路徑和緩存路徑
(2) 修改包的全局的安裝路徑和緩存路徑
? ? ? ?上面包的全局的安裝路徑和緩存路徑是安裝node.js完成后默認的路徑,默認在c盤,考慮到占用空間問題,我們可以指定到其他盤,比如:D盤。由于C盤是系統(tǒng)盤,在win11系統(tǒng)中,c盤中的文件夾的安全允許權(quán)限一般能根據(jù)cmd命令行操作時的需求而確定,但d盤不是系統(tǒng)盤,我們在cmd命令行修改到d盤的全局的安裝路徑和緩存路徑時,可能不能自動創(chuàng)建d盤文件夾及修改其安全允許權(quán)限,這時候用npm安裝包,會提示npm ERR! Error: EPERM: operation not permitted,npm ERR! The operation was rejected by your operating system,如圖4-4所示。
?圖4-4 修改安裝路徑和緩存路徑后,安裝包時的異常
? ? ? ?因此,需要手動創(chuàng)建用來保存的安裝文件夾和緩存文件夾,并設(shè)置安全允許權(quán)限,以便寫入、修改文件夾中的內(nèi)容。
? ? ? ?可能在其他機器或系統(tǒng)不會出現(xiàn)上述情形,本機器是win11系統(tǒng),只有一個固態(tài)硬盤,劃分成c盤和d盤,直接用命令修改包的全局的安裝路徑和緩存路徑時遇到上述情形,需要做下面的處理。
? ? ? ?在win11系統(tǒng)中,我們用下面兩個命令修改包的全局的安裝路徑和緩存路徑(下面npm config set也可以寫成npm set):
? ? ? ? ? ? ? ? ? ? npm config set prefix "D:\program\node\node_global"
? ? ? ? ? ? ? ? ? ? npm config set cache "D:\program\node\node_cache"
? ? ? ? 我們應(yīng)該先在上述路徑中手動創(chuàng)建node_global和node_cache文件夾,如圖4-5所示。
?圖4-5 手動創(chuàng)建node_global和node_cache文件夾
? ? ? 分別設(shè)置node_global和node_cache文件夾的安全允許權(quán)限,以便寫入、修改文件夾中的內(nèi)容,我們鼠標右鍵文件夾→屬性→安全,如圖4-6所示,其中,第三個文件夾node_modules為安裝node時自動生成的,用來存放安裝node.js時自動安裝的內(nèi)置模塊(也稱為標準包)。
?圖4-6 文件夾屬性
? ? ? ?圖4-6是默認的文件夾安全設(shè)置,圖中4-6的安全允許權(quán)限應(yīng)該增加修改、寫入兩個允許權(quán)限,這樣我們才能在該文件夾中寫入、修改。單擊圖4-6中的編輯按鈕,彈出圖4-7的設(shè)置界面。
?圖4-7 文件夾安全允許權(quán)限設(shè)置
? ? ? ? 勾選圖4-7中的紅箭頭所指的修改和寫入選項,然后單擊所有的確定,退出設(shè)置。
? ? ? ? node_global和node_cache文件夾通過上述方式設(shè)置完成后,我們就可以在cmd命令行輸入上述兩個命令即可修改包的全局的安裝路徑和緩存路徑,然后再用npm安裝包就可以成功了。
(3)環(huán)境變量設(shè)置
? ? ? ?環(huán)境變量是在操作系統(tǒng)中一個具有特定名字的對象,它代表了一個或者多個應(yīng)用程序所將使用到的信息。當要求系統(tǒng)運行一個程序而沒有告訴它程序所在的完整路徑時,系統(tǒng)除了在當前目錄下面尋找此程序外,還會到環(huán)境變量path中指定的路徑去找可運行的對象。
? ? ? ?環(huán)境變量中的系統(tǒng)變量是對所有用戶有效,用戶變量是對當前登錄的windows賬號有效,當系統(tǒng)變量查找不到時,會到當前用戶變量中查找。另外,環(huán)境變量名稱是不區(qū)分大小寫的,比如:PATH和path,兩個名稱是一樣的。
? ? ? ?因此,為方便調(diào)用安裝的包,我們需要配置環(huán)境變量(environment variable),把包的安裝路徑設(shè)置為環(huán)境變量的值,以方便調(diào)用包。
? ? ? ?我們鼠標右鍵電腦圖標如圖4-8所示。
?圖4-8 電腦屬性
? ? ? ?在圖4-8菜單中單擊屬性,進入圖4-9中的控制面板系統(tǒng)界面。
圖4-9 控制面板系統(tǒng)
? ? ? ? ?在圖4-9中單擊紅色箭頭處的高級系統(tǒng)設(shè)置,進入圖4-10系統(tǒng)設(shè)置界面。
?圖4-10 系統(tǒng)屬性
? ? ? ?在圖4-10中單擊紅色箭頭處的環(huán)境變量,進入圖4-11環(huán)境變量界面。
?圖4-11 環(huán)境變量
? ? ? ? 在上面安裝完node.js時,默認設(shè)置了環(huán)境變量,因而在圖4-11中的用戶變量或系統(tǒng)變量中的path中已經(jīng)設(shè)置了值,這里我們只需要對其進行修改就可以了,把原來的值換成D:\program\node\node_global即可,比如:原來默認的是用戶變量path,我們雙擊path,其值為C:\Users\HP\AppData\Roaming\npm,編輯換成D:\program\node\node_global,如圖1-12所示。
?圖4-12 編輯環(huán)境變量
? ? ? ?圖4-12修改后,單擊所有的確定后,環(huán)境變量配置成功。在調(diào)用時,當未指明路徑時系統(tǒng)會自動進入該配置的位置匹配調(diào)用。
? ? ? ?若默認的是系統(tǒng)變量,同理進行修改。
2、配置鏡像源(鏡像站)
? ? ? ?鏡像源(Mirror)的作用是為用戶提供下載、分發(fā)和管理服務(wù)。在CMD命令行窗口中使用命令npm get registry(或npm config get registry)查看當前使用的鏡像源地址,npm默認使用的鏡像源地址為https://registry.npmjs.org/,在使用 npm下包的時候,默認從國外的 npm 服務(wù)器進行下載,可能速度比較慢,我們可以更換為國內(nèi)鏡像源。淘寶在國內(nèi)搭建了一個服務(wù)器,專門把國外官方服務(wù)器上的包同步到國內(nèi)的服務(wù)器,然后在國內(nèi)提供下包的服務(wù),有時候考慮到下載網(wǎng)速,我們可以更換為淘寶鏡像源,在cmd命令行窗口中輸入命令(下面npm config set也可以寫成npm set):
? ? ? ? ? ? ? ? ? ? ?npm config set registry=https://registry.npmmirror.com/
? ? ? ? 更換鏡像源后,我們可以用npm下載淘寶鏡像源的包。
? ? ? ?上面我們是通過手動設(shè)置鏡像源,我們可以安裝鏡像源管理工具nrm,通過nrm切換鏡像源。可以在cmd命令行窗口中輸入命令npm install nrm -g安裝nrm,安裝后可以使用命令nrm ls查看支持的鏡像源,并且通過鏡像源名稱直接切換鏡像源,比如:命令nrm taobao,即可切換到使用淘寶鏡像源,命令nrm current可以查看當前使用的鏡像源名名稱,具體命令操作如圖4-13所示。
?圖4-13? 鏡像源管理工具nrm的命令操作
? ? ? ?圖4-13中紅框列出的鏡像源是包管理工具支持的,npm也支持對這些鏡像源的操作,紅框中第一列為鏡像源名稱,第二列為鏡像源地址,紅框下面的命令是切換鏡像源,并查看當前使用的鏡像源地址或鏡像源名稱。
3、配置包管理工具
? ? ? ?上面我們使用npm包管理工具,我們也可以使用其他包管理工具,比如:cnpm、yarn等。我們可以在cmd命令行窗口中輸入下面命令分別安裝cnpm、yarn包管理工具:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?npm install cnpm -g
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?npm install yarn -g
? ? ? ?安裝完成后可以在cmd窗口分別使用cnpm -v和yarn -v命令查看版本情況,出現(xiàn)版本信息即表示已安裝成功。
? ? ? ?npm是node官方的包管理器。
? ? ? cnpm是中國版的npm,通常因網(wǎng)絡(luò)等各類因素?zé)o法使用npm時, cnpm就派上用場了,但cnpm一般只用于安裝時候,所以在項目創(chuàng)建、卸載等操作時我們還是使用npm,因而cnpm不能用來卸載包。
? ? ? ?yarn是由Facebook、Google、Exponent 和 Tilde 聯(lián)合推出了一個新的 JS 包管理工具,是為了彌補 npm 的一些缺陷而出現(xiàn)。
? ? ? ?npm、cnpm、yarn等包管理工具有各自的特色,一般來講,圖4-13中紅框列出的鏡像源可以用這些包管理工具來操作。但在使用時,它們的操作命令有的存在差異,在使用時應(yīng)注意命令格式,另外,考慮到網(wǎng)絡(luò)、包等因素,當一種包管理工具在使用時遇到問題時,可以嘗試使用另一種包管理工具來實現(xiàn)需求。
五、node.js的運行
? ? ? ?Node是一個運行環(huán)境,由一、的分析可知node相當于一個帶有編譯器(Compiler)的環(huán)境,上面安裝node后,我們還需要工具調(diào)用運行這個node環(huán)境(也即相當于調(diào)用運行帶有編譯器的環(huán)境),從而實現(xiàn)JavaScript(簡稱“JS”)代碼在機器上的執(zhí)行。
? ? ? ?我們可以用cmd.exe或IDE(集成開發(fā)環(huán)境)調(diào)用運行node,也即調(diào)用一個帶有編譯器(Compiler)的環(huán)境。編譯器(Compiler)需要cmd.exe或IDE(集成開發(fā)環(huán)境)調(diào)用運行,實際也是讓操作系統(tǒng)參與進來,發(fā)揮操作系統(tǒng)的作用(計算機資源分配),從而順利實現(xiàn)程序的運行。編譯器的運行及其與開發(fā)環(huán)境的關(guān)系參見編譯器(Compiler)及C/C++編譯器安裝(c+安裝)中的一、五。
1、cmd.exe運行node
? ? ? ?通過windows的cmd.exe命令行運行node,這種方式類似cmd運行c/c++編譯器一樣,具體參見Windows的cmd運行編譯器(cmd運行c/c++、python等),那里調(diào)用c/c++編譯器用gcc或g++,這里我們用node.exe調(diào)用node運行環(huán)境。 如圖5-1我們使用cmd運行文件jt.js(代碼如下)。
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Hello, JavaScript!');
res.end();
});
server.listen(1000);
console.log('Server running at http://localhost:1000/');
?圖5-1 ?cmd 運行node
? ? ? ?把圖5-1中的地址http://localhost:1000/復(fù)制到瀏覽器就可以可看到Web服務(wù)器返回的Hello, JavaScript!消息。
? ?這里不展開介紹在cmd中運行node,具體使用可以類似參考鏈接Windows的cmd運行編譯器(cmd運行c/c++、python等)。
? ? ? ?若我們要記錄項目的詳細信息,方便在以后的項目版本迭代和項目移植,我們可以在cmd中使用命令npm init進行設(shè)置,這個操作也叫npm init初始化項目,生成一個package.json文件。通過這種操作后,當我把項目傳給對方時,不需要將項目依賴包一起發(fā)送給對方,對方在接受到我的項目之后再執(zhí)行npm install就可以將項目依賴全部下載到項目里。package.json文件可以包含以下選項內(nèi)容。
package name:項目名稱;
version:項目版本;
description:項目描述,以便用戶搜索與理解項目;
keywords:項目關(guān)鍵字,提供項目涉及到的關(guān)鍵的詞,以便用戶搜索與理解項目;
git repository:git倉庫地址,若項目上傳到git中,需要填寫git的倉庫地址;
author:項目開發(fā)者;
license:軟件授權(quán)許可,比如:MIT或 ISC等開源協(xié)議;
dependencies:項目運行環(huán)境(運行階段)所需的依賴包,是鍵值對(key-value)配置, key 表示包的名稱,value表示其版本號,比如:
"dependencies": {
?? "boo": "^2.0.1",
?? "thr": "3.3.x",
}
? ? ?在package.json文件中可以對依賴包進行分類區(qū)分,以方便用戶有針對性的下載,除了dependencies,還有devDependencies、peerDependencies、peerDependenciesMeta、bundleDependencies等分類的劃分,這些對依賴包的歸類主要是為了方便用戶使用。有些下載操作并不區(qū)分下載哪種類型的包,若針對這些分類中的某類的依賴包的下載,需要特定的操作命令。
main:項目默認的執(zhí)行文件,項目的入口點,通常是用于啟動項目的文件。如果未設(shè)置該字段,則默認加載項目根目錄下的 index.js 文件。
scripts:package.json 中內(nèi)置的腳本入口,是 key-value 鍵值對配置,key 為操作名稱,value為該操作運行的對象,可以通過 npm run 來執(zhí)行該操作,比如:
"scripts": {
" tt": "node test.js ",
" hello ": "node hello.js ",
}
? ? ? ?npm run tt,就會執(zhí)行node test.js。這里的腳本(script)可以理解為通過一些規(guī)定的代碼,調(diào)用已經(jīng)編寫好的程序。腳本是一句句的、條理性的、操作性的、流程化的代碼,類似演戲的腳本,演員根據(jù)腳本知道自己該表演什么,說什么臺詞。在有的語境中,腳本是一種具有一邊解釋一邊執(zhí)行特點的編程語言,比如:Lua、JavaScript等。
? ? ? ?npm init 命令會逐步提示設(shè)置,若退出設(shè)置選擇Press ^C at any time to quit.,即按ctr+c鍵,相當于cmd.exe中的退出命令操作,即中斷執(zhí)行命令。
? ? ? ?若使用命令npm init -y,是采用默認的初始化項目,也即默認的項目信息設(shè)置,生成一個默認的package.json文件,其中參數(shù)y表示yes的意思,相當于自動接受默認的項目信息設(shè)置。
? ? ? ?要在cmd.exe中編輯或查看package.json文件,可以使用命令notepad package.json,以文本編輯器打開package.json文件,如圖5-2所示打開C:\Users\HP里的package.json文件,打開后就可以根據(jù)需要手動設(shè)置選項,保存即可。
?圖5-2 ?cmd文本編輯器打開package.json
? ? ? ?另外,在powershell.exe命令行也可以運行nodejs,powershell.exe命令行的功能比cmd.exe命令行更強大。
2、集成開發(fā)環(huán)境運行node
? ? ? ? 通過集成開發(fā)環(huán)境(IDE)運行node(也即集成開發(fā)環(huán)境調(diào)用運行node.exe)。集成開發(fā)環(huán)境工具是帶有一整套可以幫助我們提高語言開發(fā)效率的工具(比如:代碼編輯、調(diào)試、語法高亮、智能提示(intellisense)等),可以提高項目開發(fā)、管理效率。
? ? ? 我們可以使用PyCharm、VS、VS Code等開發(fā)環(huán)境工具來運行node。我們以PyCharm為例,當我們用PyCharm打開一個空文件夾來創(chuàng)建node.js項目時,會默認調(diào)用node.exe(默認自動設(shè)置調(diào)用路徑,當然,不同開發(fā)環(huán)境可能設(shè)置也有差異),然后我們再創(chuàng)建一個.js文件就可以運行這個文件了,如圖5-2是使用pycharm運行node。
?圖5-2? pycharm運行node
? ? ? ? 圖5-2 中的代碼如下:
function test(){
??? let a = 3;
??? let b = 9;
??? console.log('a+b='+(a+b));
}
test();
VS Code的安裝及配置參見:https://blog.csdn.net/thefg/article/details/131752996
PyCharm的安裝及配置參見:https://blog.csdn.net/thefg/article/details/128881507
?2023年最新Python安裝詳細教程:https://blog.csdn.net/thefg/article/details/128601410?
Python基礎(chǔ)詳解教程------讓編程變得簡單,須知:文章來源:http://www.zghlxwxcb.cn/news/detail-735890.html
https://blog.csdn.net/thefg/article/details/127846247文章來源地址http://www.zghlxwxcb.cn/news/detail-735890.html
最后, 歡迎你點贊、收藏、關(guān)注!
到了這里,關(guān)于2023年最新Node.js安裝詳細教程及node.js配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!