Nodejs安裝、配置與快速入門

Nodejs是現代JavaScript語言產生革命性變化的一個主要框架,它使得JavaScript從一門瀏覽器語言成為可以在服務器端運行、開發各種各樣應用的通用語言。在不同的平臺下,Nodejs的安裝和配置也各有不同。


由於Nodejs版本更迭頻繁的特點(這一點和Python非常類似,也是這種充滿活力的語言的共同特點),用戶的不同項目可能在不同版本的Nodejs下開發進行(這些版本可能由於對第三方庫版本依賴等不同原因而無法互相兼容),因此,一般建議通過安裝版本管理器NVM ( Node Version Manager)來進行多版本的安裝和使用(類似於Python語言的VirtualEnv或者Conda版本管理工具)。


Nodejs安裝、配置與快速入門


1.Windows系統安裝與配置Nodejs


雖然在Windows平臺下,nvm-windows來進行多版本管理,但實際安裝和使用體驗並不好,因此本文僅介紹Windows下nodejs常規安裝方式。並強烈推薦在日常開發中使用windows系統下內置的linuxs發行版WSL或者純粹的linux發行版如Ubuntu以替代Windows,參見Windows 10安裝與管理WSL體驗原生Linux系統.


Windows下的Nodejs安裝可以通過官方網站的安裝包進行安裝,也可以通過國內鏡像例如清華大學開源鏡像站或者淘寶鏡像站選擇相應版本並進行下載安裝。


安裝完成後,在命令行中輸入以下命令,如果正常顯示已安裝的nodejs版本,則安裝完成。否則可能需要手動設置環境變量到安裝目錄下。


<code>node -v
npm -v/<code>


2. MacOS系統安裝與配置Nodejs


在MacOS系統下,可以通過從官方網站或者鏡像站下載安裝包pkg安裝包的方式或NVM方式進行安裝。一般來說不推薦直接用安裝包的方式在系統中安裝nodejs。在MacOS系統下,要安裝NVM,需要先安裝MacOS的命令行工具(Command Line Tools/可以與XCode一起安裝或者單獨安裝)。參考說明文檔單獨安裝時,需要在MacOS終端中輸入以下命令:


<code>xcode-select --install/<code>


安裝後的Command Line Tools在MacOS系統下述路徑中。


<code>/Library/Developer/CommandLineTools//<code>


Nodejs安裝、配置與快速入門


3.通過NVM安裝與配置Nodejs(推薦)


在MacOS或者Linux系統中,推薦使用NVM來安裝Nodejs。在使用Windows系統時,推薦使用WSL內置Linux子系統進行開發,並通過NVM進行Nodejs版本安裝和管理。


3.1 在命令行通過curl或wget命令安裝NVM(以下命令二選一):


<code>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash/<code>


上述腳本會把NVM下載到 /.nvm文件夾下並將下面腳本添加到終端的配置文件中,根據使用的終端不同,配置文件可能是下面文件的某一個(/.bash_profile,/.zshrc./.profile或者~/.bashrc)


<code>export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh" # This loads nvm/<code>


3.2 NVM版本管理器常用命令


安裝完NVM後,可以在命令行中輸入nvm查看nvm命令行幫助文件,常用的nvm命令包括:


<code>nvm current #查看當前正在使用的node版本
nvm ls #列出本地已安裝的node版本
nvm ls-remote #列出遠程所有版本可通過 |grep v12.* linux管道命令來進行篩選
nvm install v12 #安裝v12版本的nodejs,如果不指定具體版本,默認安裝當前大版本的LTS版
nvm install --lts #安裝lts版本node
nvm uninstall --lts #刪除某個node的lts版本
nvm use v12 #使用v12版本的nodejs
nvm use system #如果操作系統中已經安裝有nvm可識別的nodejs,該命令會使用系統中的nodejs
nvm alias default v12 #設置操作系統別名,該命令將v12別名設置為default,可通過nvm use defaul使用/<code>


需要注意的是,通過nvm安裝並管理的各個不同版本,相互之間是各自獨立的,因此,在一個版本中安裝的全局安裝包,並不會影響其他版本。這也正是nvm的優勢所在。

默認情況下,nvm從nodejs海外官網直接下載相應版本,可以通過修改環境變量來使用國內淘寶鏡像等進行加速。參考命令如下:


<code>export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/<code>


Nodejs安裝、配置與快速入門


4. Linux系統下通過預編譯二進制文件安裝


在用於生產環境的電腦上,可能僅需要運行一個特定版本的nodejs並配置相應環境,這時就不需要通過nvm包管理器進行管理與安裝,只需要下載需要的版本進行安裝與配置即可。推薦從國內鏡像站點下載預編譯的文件。如清華大學開源鏡像站。

v13.5.0 linux x64

v8.16.1 linux x64


v12.14.0 linux x64(穩定推薦)


使用wget或者curl下載源碼並解壓縮,將解壓縮後的文件移動到常用的安裝文件夾並分別為node,npm和npx創建軟鏈接。


<code>tar xvJf  node.tar.xz #解壓縮下載的安裝包
sudo mv node /usr/node #將安裝包移動到需要安裝的目錄下
#創建軟連接,使得在bash下可以直接使用node相應命令,需要注意的是,通過這種方式安裝的話,後續安裝的
#全局npm包也需要每個單獨配置軟連接。要簡化這一步驟,需要把nodejs包添加到linux的環境變量中

sudo ln -s /usr/node/bin/node /usr/local/bin/
sudo ln -s /usr/node/bin/npm /usr/local/bin/
sudo ln -s /usr/node/bin/npx /usr/local/bin//<code>


5. npm包管理器的配置與使用


5.1 配置npm使用國內軟件倉庫(推薦)


使用npm默認的國外倉庫安裝時,速度很慢,因此需要通過修改軟件倉庫為國內鏡像(推薦淘寶)進行加速。可以通過阿里的cnpm或者直接設置倉庫來實現。


修改npm或yarn倉庫為淘寶鏡像及恢復默認的官方鏡像命令分別如下:


<code>#設置npm淘寶鏡像
npm config set registry http://registry.npm.taobao.org/
#設置yarn淘寶鏡像
yarn config set registry http://registry.npm.taobao.org/

#設置npm為官方鏡像
npm config set registry https://registry.npmjs.org/
#設置yarn為官方鏡像
yarn config set registry https://registry.yarnpkg.com


#安裝阿里cnpm工具來替代默認npm,安裝後可使用cnpm命令替代npm
$ npm install -g cnpm --registry=https://registry.npm.taobao.org

#查看當前鏡像倉庫路徑
npm get registry
yarn config get registry

# 代碼審查
npm audit/<code>


5.2 npm使用入門


npm是使用最廣泛的nodejs包管理器(近幾年出現的yarn是另外一個流行的node包管理器),可以用於方便的管理node項目中第三方包的管理和依賴問題,使nodejs項目擺脫依賴複雜性帶來的種種問題。npm包管理器最常用的功能分為全局安裝和項目安裝兩種。其中,全局安裝的包可以在node全局可見,這樣的安裝方式可能會汙染node版本環境,也不利於項目的移植,因此,除了一些必要的命令行工具和通用的包之外,不建議使用全局安裝包。


使用下列命令進行全局包安裝


<code>npm i -g pacakge-name/<code>


對於僅需要在某個項目中使用的包,可採用局部安裝的方式。初始化nodejs項目時,可以在項目根目錄下通過下列命令來生成項目的package.json文件,對於angular、nestjs等框架,在生成新項目時會自動生成相應的package.json文件。


<code>npm init/<code>


生成package.json文件後。要在本地安裝和管理nodejs包,都可以在根目錄下通過npm命令完成。


<code>npm i package-name #在項目中安裝名為package-name的包,但並不保存到項目包列表中,不推薦該方法
npm i package-name --save #安裝package-name包,並保存到項目依賴清單中
npm i package-name --save-dev #安裝package-name包,並保存在開發依賴清單中,在生產環境中不安裝
npm uninstall package-name #卸載某個包
npm update package-name #升級某個包的版本
npm i [email protected] --save #安裝指定版本的package-name包
npm search package-name #搜索某個包

npm ls -g #列出全局安裝的所有包
npm cache clear #清空npm本地緩存,一般在系統出現問題時處理故障使用/<code>


通過--save和--save-dev參數安裝的所有包,都可以在package.json文件的依賴項中看到。

當然,除了下載和使用現有的第三方包之外,也可以在npm官網發佈自己的npm包,供自己和他人(私有倉庫需要付費,公有倉庫免費)使用。這需要註冊賬號,並通過npm adduser命令添加自己的用戶名,詳細說明可參見相關官方文檔。


6. 團隊常用npm安裝包


  • TypeScript包


<code>npm i -g typescript #安裝TypeScript語言包
tsc helloworld.ts #使用TypeScript編譯.ts文件/<code>


  • 安裝Angular命令行工具及開始新項目


<code>npm install -g @angular/cli
ng new my-app
cd my-app
ng serve --open #啟動angular開發服務器
#打開瀏覽器並訪問http://localhost:4200/<code>


  • 安裝Nestjs命令行工具及開始新項目


<code>npm i -g nestjs/cli #安裝命令行工具
nest new my-app #新建項目
cd my-app #進入新項目
npm run start #運行項目
#打開瀏覽器並訪問http://localhost:3000/<code>


  • light-server輕型調試服務器
    安裝


<code>npm i -g light-server/<code>


示例


<code># Examples:
$ light-server -s . -p 7000
$ light-server -s dist --http2 -o
$ light-server -s dist --historyindex '/index.html'
$ light-server -s . -w "*.js, src/** # npm run build && echo wow!"
$ light-server -s . -x http://localhost:8000
$ light-server -s . -x http://localhost:8000 --servePrefix /assets
$ light-server -s . -b 10.0.0.1
$ light-server -x http://localhost:9999 --proxypath "/api" -w "public/**"
$ light-server -s static -w "**/*.css # # reloadcss"
$ light-server -c .lightserverrc
& light-server -s . -p 8000 -w "src/**/*.js # npm run js # no-reload"/<code>


7. nodejs開發常用資源


  • NVM版本管理器倉庫
  • NPM包管理器官網
  • NPM淘寶鏡像首頁
  • 清華大學開源軟件鏡像站
  • Nodejs中文網
  • 菜鳥教程網nodejs快速入門教程
  • Angular中文官網
  • Nestjs中文文檔


分享到:


相關文章: