【Linux】Ubuntu Linux 系統——Node.js 開發環境

??大家好,我是練小杰,今天星期五了,同時也是2025年的情人節,今晚又是一個人的舉個爪子!! 🙂
本文是有關Linux 操作系統中 Node.js 開發環境基礎知識,后續我將添加更多相關知識噢,謝謝各位的支持🙏

前情回顧:【Linux 系統——Python集成開發環境】
Linux專欄:🔝 【Linux零基礎開始】【Shell 腳本編程】 【文件權限專欄】

在這里插入圖片描述

Node.js 開發環境

  • Node.js簡介
    • 虛擬環境簡介
  • 開發環境的組成
    • Node.js 運行時
    • 包管理器
      • npm(Node Package Manager)
      • yarn 包管理器
    • 代碼編輯器或集成開發環境 (IDE)
    • 版本控制工具 (Git)
    • 調試工具
    • 構建工具
    • 測試框架
    • 持續集成/持續部署 (CI/CD) 工具
    • 容器化工具 (Docker)
    • 其他有用的工具
    • 環境變量和配置文件
    • 安全性工具
    • 文檔和注釋
  • 在Ubuntu系統上安裝Node.js
    • 安裝`Node.js`的方式
    • 使用二進制發行版安裝`Node.js`
      • 1. 下載 Node.js 二進制包
      • 2. 解壓下載的二進制包
      • 3. 移動解壓后的文件到系統目錄
      • 4. 配置環境變量
      • 5. 驗證安裝
    • 管理Node.js版本
    • 使用淘寶npm鏡像
  • 開發Node.js應用程序
    • 編寫程序
    • 測試程序
  • 調試Node.js應用程序

在這里插入圖片描述

Node.js簡介

  • 在Linux系統中,Node.js開發環境是指為了開發、運行和調試Node.js應用程序所需的一系列工具、庫和配置。
  • 完整的Node.js開發環境由多個關鍵組件構成,這些組件協同工作,幫助開發者高效地開發、運行、測試和部署Node.js應用程序。

虛擬環境簡介

  • Node.js(簡稱Node)是一個基于Chrome V8引擎的JavaScript運行環境。

  • Node.js是一個讓JavaScript運行在服務器端的開發平臺。

  • Node.js運行時環境包含執行用JavaScript編寫的程序所需的一切。

  • Node.js 優點: 開發人員可以在客戶端和服務器端編寫JavaScript,打通了前、后端。

  • Node.js除了自己的標準類庫(主要由二進制類庫和核心模塊組成)之外, 還可使用大量的第三方模塊系統來實現代碼的分享和重用,提高開發效率。

  • 對比其他的后端腳本語言,Node.js內置了處理網絡請求和響應的函數庫,所以不需要額外部署Web服務器。

開發環境的組成

一個在Linux系統上完整的Node.js開發環境由以下主要部分組成:

  1. Node.js 運行時:提供JavaScript運行環境。
  2. 包管理器 (npm 或 yarn):管理項目依賴。
  3. 代碼編輯器或 IDE:編寫和調試代碼。
  4. 版本控制工具 (Git):管理代碼版本和協作。
  5. 調試工具:調試應用程序。
  6. 構建工具:打包和優化代碼。
  7. 測試框架:編寫和運行測試。
  8. CI/CD 工具:自動化構建、測試和部署。
  9. 容器化工具 (Docker):創建和管理容器化環境。
  10. 其他工具 (nodemon, PM2):提升開發效率。
  11. 環境變量和配置文件:管理應用配置。
  12. 安全性工具:確保應用安全。
  13. 文檔和注釋工具:編寫和維護文檔。

Node.js 運行時

Node.js 是JavaScript的運行環境,允許你在服務器端執行JavaScript代碼。Node.js基于Chrome V8引擎,具有非阻塞、事件驅動的架構,非常適合構建高性能的網絡應用。

  • 安裝方式:
    • 包管理器:如apt、dnf等,適用于大多數Linux發行版,但版本可能不是最新的。
    • nvm(Node Version Manager):允許你安裝和管理多個Node.js版本,適合開發環境。
    • 從官網下載二進制文件:適用于需要特定版本的用戶。

包管理器

npm(Node Package Manager)

默認隨Node.js一起安裝,用于安裝、升級和卸載項目依賴。

  • 常用命令:
npm install <package-name>
npm uninstall <package-name>

yarn 包管理器

由Facebook開發,提供更快的安裝速度和更穩定的依賴管理。

  • 安裝:
npm install -g yarn
  • 常用命令:
yarn add <package-name>
yarn remove <package-name>

代碼編輯器或集成開發環境 (IDE)

  • Visual Studio Code (VS Code): 免費、開源,擁有豐富的擴展和調試功能。安裝VS Code可以使用Snap安裝 或 使用Visual Studio Code安裝包。

  • WebStorm:功能全面的JavaScript IDE,由JetBrains開發。可以非常方便地進行代碼補全、調試、測試等。

  • Sublime Text:插件豐富,界面也比較美觀,且具有簡單的項目管理功能。

版本控制工具 (Git)

Git 用于代碼版本控制和協作開發。使用GitHub、GitLab、Bitbucket等平臺進行代碼托管和團隊協作。

  • 安裝:
sudo apt update
sudo apt install git
  • 配置:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

調試工具

  • Node.js 內置調試器:使用 --inspect 標志啟動調試模式。
node --inspect app.js
  • VS Code 調試器: 配置 launch.json 文件以支持 Node.js 調試。

  • Chrome DevTools: 通過 --inspect 標志,在Chrome瀏覽器中使用DevTools進行調試。

構建工具

  • Webpack: 用于打包、壓縮和優化前端資源。

    npm install --save-dev webpack webpack-cli
    
  • Gulp、Grunt: 自動化任務運行器,用于執行常見的開發任務。

  • Babel:將現代JavaScript代碼轉譯為兼容舊版本的代碼。

    npm install --save-dev @babel/core @babel/cli @babel/preset-env
    

測試框架

  • Jest: 一個功能強大的JavaScript測試框架。

    npm install --save-dev jest
    
  • 另外,Mocha、Chai、AVA 等也是常用的測試框架。

持續集成/持續部署 (CI/CD) 工具

  • Jenkins:一個開源的自動化服務器,用于構建、測試和部署。

  • Travis CICircleCI:基于云的CI/CD服務,易于集成GitHub等平臺。

容器化工具 (Docker)

Docker: 用于創建和管理容器化的開發環境,確保開發環境與生產環境的一致性。

  • docker安裝命令

    sudo apt update
    sudo apt install docker.io
    sudo systemctl start docker
    sudo systemctl enable docker
    

Docker Compose: 管理多個容器的應用。

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose

其他有用的工具

  • nodemon: 在開發過程中自動重啟Node.js應用程序,方便實時調試。

    npm install -g nodemon
    
  • PM2:一個高級的進程管理器,用于生產環境的應用程序管理。

    npm install -g pm2
    

環境變量和配置文件

  • 環境變量:使用 .env 文件管理環境變量,配合 dotenv 包使用。
npm install dotenv
  • 配置文件: 使用 package.json 腳本和 config 包管理不同環境的配置。

安全性工具

  • 使用 npm audityarn audit 檢查和修復依賴中的安全漏洞。

    npm audit
    
  • ??使用 HTTPS協議:確保所有網絡通信使用 HTTPS,保護數據傳輸安全。

文檔和注釋

  • JSDoc:為JavaScript代碼生成文檔。

    npm install --save-dev jsdoc
    
  • Markdown 編輯器:使用 Markdown 編寫項目文檔和README 文件。

在Ubuntu系統上安裝Node.js

安裝Node.js的方式

  • 源代碼:適合各種版本的安裝。
  • 二進制發行版:Node.js官方提供已編譯好的二進制軟件包,可直接下載使用。
  • 軟件源安裝:Debian/Ubuntu都有自己的軟件源安裝工具。
  • n模塊: 可以用來安裝并切換到相應的Node.js,前提是已安裝包管理器npm
  • nvm:這是Node.js版本管理器,可用于安裝和管理不同版本的Node.js。

使用二進制發行版安裝Node.js

1. 下載 Node.js 二進制包

首先,訪問 Node.js 官方下載頁面 獲取最新的二進制包鏈接。你也可以使用 wget 命令直接下載所需的版本。 以下示例用下載最新的 LTS(長期支持)版本舉例:

#創建一個目錄用于存放下載的文件(如果尚未存在)
mkdir -p ~/Downloads/nodejs#進入下載目錄
cd ~/Downloads/nodejs#使用 wget 下載最新的 LTS 版本(請根據實際版本號調整 URL)
wget https://nodejs.org/dist/v18.17.1/node-v18.17.1-linux-x64.tar.xz

??注意:請確保使用最新的版本號。你可以在【Node.js 官方下載頁面】 找到最新的 LTS 版本鏈接。

2. 解壓下載的二進制包

下載完成后,使用 tar 命令解壓壓縮包。

#解壓下載的壓縮包
tar -xf node-v18.17.1-linux-x64.tar.xz

3. 移動解壓后的文件到系統目錄

為了方便使用,可以將解壓后的文件移動到 /usr/local 目錄。

sudo mv node-v18.17.1-linux-x64 /usr/local/nodejs

4. 配置環境變量

為了讓系統識別 nodenpm 命令,需要將 Node.js 的可執行文件路徑添加到 PATH 環境變量中。

  • 編輯 ~/.bashrc(使用 Bash)或 ~/.zshrc(使用 Zsh)文件。
#使用 nano 編輯 ~/.bashrc
nano ~/.bashrc
  • 在文件末尾添加以下內容:
# Node.js
export NODEJS_HOME=/usr/local/nodejs
export PATH=$NODEJS_HOME/bin:$PATH

保存并退出編輯器(在 nano 中,按 Ctrl + O 保存,按 Ctrl + X 退出)。

  • 刷新環境變量配置文件:
source ~/.bashrc

5. 驗證安裝

最后,驗證 Node.jsnpm 是否安裝成功。

# 檢查 Node.js 版本
node -v
# 輸出示例: v18.17.1# 檢查 npm 版本
npm -v
# 輸出示例: 9.6.7

至此,通過上面的步驟,我們可以在Linux系統中使用二進制發行版成功安裝Node.js,并配置好環境變量以便于全局使用 nodenpm 命令。此外,使用 nvm 可以更方便地管理多個Node.js版本,適合開發環境中的不同項目需求。

管理Node.js版本

nvm是專門的Node版本管理器,我們可以利用nvm進行版本管理服務器。

  • 常用命令如下:
nvm current           #顯示當前正在使用的版本
nvm ls                 #列出已在本機安裝的版本,同時也會顯示當前使用的版本
nvm install 8.0.0    #安裝指定版本的Node 
nvm uninstall 8.0.0  #卸載指定版本的Node
nvm use 8.0            #指定當前要使用的版本(切換版本)
nvm run 6.10.3 app.js   #使用指定Node版本(6.10.3)運行指定程序(app.js) 
nvm alias default 8.1.0   #設置默認的Node版本
nvm alias default node    #將最新版本作為默認版本

使用淘寶npm鏡像

  • 淘寶專門定制了cnpm命令行工具以代替npm,可以執行以下命令進行安裝。
sudo npm install -g cnpm --registry=https://registry.npm.taobao.org

安裝完成后,可使用cnpm來安裝和管理npm包。
cnpm的使用方法與npm相同,只需將npm改成cnpm

開發Node.js應用程序

下面以VS Code編輯器界面舉例:

編寫程序

const http = require('http');
const httpServer = http.createServer(function (req, res) {res.writeHead(200, {'Content-Type': 'text/plain'});res.end('Hello World!s\n');
});
httpServer.listen(3000,function(){console.log('服務器正在3000端口上監聽!');
});

測試程序

  • 運行Node.js程序
    在這里插入圖片描述
  • 訪問Web應用程序
    在這里插入圖片描述

調試Node.js應用程序

  • 設置配置文件.vscode/launch.json
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "Launch Program","program": "${workspaceFolder}/hello-world.js"}]
}
  • 設置斷點
  • 啟動Node.js腳本的調試
    在這里插入圖片描述
  • 根據需要設置監視器
  • 執行斷點之后的語句

調試器支持3種單步執行方式:

  • Step Into<F11>鍵):單步執行,遇到子函數就進入并且繼續單步執行。
  • Step Out<Shift>+<F11>組合鍵):當單步執行到子函數內時,使用它執行完子函數余下部分,并返回到上一層函數。
  • Step Over<F10>鍵):在單步執行時,在函數內遇到子函數時不會進入子函數內單步執行,而是將子函數整個執行完畢并返回到下一條語句。
  • 要強制結束調試,按<Shift>+<F5>組合鍵。

今天的Linux系統的Node.js 開發環境內容到這里就結束了,下星期再見啦👋
??了解更多,主頁【練小杰的CSDN】
??若博客里的內容有問題,歡迎指正,我會及時修改!!!
下周同一時間再見,各位伙伴們🚴🏻?♀?~~

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70207.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Dockerfile 編寫推薦

一、導讀 本文主要介紹在編寫 docker 鏡像的時候一些需要注意的事項和推薦的做法。 雖然 Dockerfile 簡化了鏡像構建的過程&#xff0c;并且把這個過程可以進行版本控制&#xff0c;但是不正當的 Dockerfile 使用也會導致很多問題。 docker 鏡像太大。如果你經常使用鏡像或者…

mysql 學習16 視圖,存儲過程,存儲函數,觸發器

視圖&#xff0c; 存儲過程&#xff0c; 存儲函數 觸發器

SpringBoot+Vue+數據可視化的動漫妝造服務平臺(程序+論文+講解+安裝+調試+售后等)

感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff0c;項目以及論文編寫等相關問題都可以給我留言咨詢&#xff0c;我會一一回復&#xff0c;希望幫助更多的人。 系統介紹 在當今數字化高速發展的時代&#xff0c;動漫產業迎來了前所未有的繁榮&#xff0c;動漫…

rtsp rtmp 跟 http 區別

SDP 一SDP介紹 1. SDP的核心功能 會話描述&#xff1a;定義會話的名稱、創建者、時間范圍、連接地址等全局信息。媒體協商&#xff1a;明確媒體流的類型&#xff08;如音頻、視頻&#xff09;、傳輸協議&#xff08;如RTP/UDP&#xff09;、編碼格式&#xff08;如H.264、Op…

Containerd 簡介、安裝與使用指南

1. Containerd 簡介 Containerd 是一個開源的容器運行時&#xff0c;專注于管理容器的生命周期。它最初是 Docker 的一部分&#xff0c;后來被分離出來成為一個獨立的項目&#xff0c;并成為 Kubernetes 和其他容器平臺的底層運行時。Containerd 提供了容器的創建、啟動、停止…

開源語音克隆項目 OpenVoice V2 本地部署

#本機環境 WIN11 I5 GPU 4060ti 16G 內存 32G #開始 git clone https://github.com/myshell-ai/OpenVoice.git conda create -n opvenv python3.9 -y conda activate opvenv pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/…

【Prometheus】prometheus結合domain_exporter實現域名監控

?? 歡迎大家來到景天科技苑?? ???? 養成好習慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構師,華為云開發者社區專家博主,阿里云開發者社區專家博主,CSDN全棧領域優質創作者,掘金優秀博主,51CTO博客專家等。 ??《博客》:Python全…

rustdesk編譯修改名字

最近&#xff0c;我用Rust重寫了一個2W行C代碼的linux內核模塊。在此記錄一點經驗。我此前沒寫過內核模塊&#xff0c;認識比較疏淺&#xff0c;有錯誤歡迎指正。 為什么要重寫&#xff1f; 這個模塊2W行代碼量看起來不多&#xff0c;卻在線上時常故障&#xff0c;永遠改不完。…

在linux系統中安裝Anaconda,并使用conda

系統 : ubuntu20.04 顯卡&#xff1a;NVIDIA GTX1650 目錄 安裝Anaconda第一步&#xff1a;下載合適版本的Anconda1. 查看自己Linux的操作系統及架構命令&#xff1a;uname -a2. 下載合適版本的Anconda 第二步&#xff1a;安裝Aanconda1. 為.sh文件設置權限2. 執行.sh文件2.1 .…

(前端基礎)HTML(一)

前提 W3C:World Wide Web Consortium&#xff08;萬維網聯盟&#xff09; Web技術領域最權威和具有影響力的國際中立性技術標準機構 其中標準包括&#xff1a;機構化標準語言&#xff08;HTML、XML&#xff09; 表現標準語言&#xff08;CSS&#xff09; 行為標準&#xf…

【ISO 14229-1:2023 UDS診斷(會話控制0x10服務)測試用例CAPL代碼全解析③】

ISO 14229-1:2023 UDS診斷【會話控制0x10服務】_TestCase03 作者&#xff1a;車端域控測試工程師 更新日期&#xff1a;2025年02月15日 關鍵詞&#xff1a;UDS診斷、0x10服務、診斷會話控制、ECU測試、ISO 14229-1:2023 TC10-003測試用例 用例ID測試場景驗證要點參考條款預期…

TDengine 客戶端連接工具 taos-Cli

簡介工具獲取運行命令行參數 基礎參數高級參數 數據導出/導入 數據導出數據導入 執行 SQL 腳本使用小技巧 TAB 鍵自動補全設置字符列顯示寬度其它 錯誤代碼表 簡介 TDengine 命令行工具&#xff08;以下簡稱 TDengine CLI&#xff09;是用戶操作 TDengine 實例并與之交互最簡…

Git高級用法

GIT高級用法及實戰案例解析 前言 作為現代開發者的必備工具&#xff0c;Git的基礎操作&#xff08;add/commit/push&#xff09;早已深入人心。但當面對復雜場景時&#xff0c;掌握Git的高級用法將極大提升開發效率。本文將深入解析Git的高級功能&#xff0c;并配合真實場景案…

9個用于測試自動化的最佳AI測試工具(2024)

選擇一款優質的基于生成式AI人工智能的測試工具能夠確保測試過程的準確性和效率&#xff0c;從而加速整個軟件測試周期。相反&#xff0c;設計不佳的測試工具可能無法發現錯誤&#xff0c;并可能存在安全問題。它們可能產生誤報或漏報&#xff0c;誤導開發與測試團隊&#xff0…

vue-model如何自定義指令,及批量注冊自定義指令

一、在Vue.js中&#xff0c;v-model是一個用于在表單輸入和應用狀態之間創建雙向綁定的指令。要編寫自定義的v-model指令&#xff0c;你需要使用Vue的自定義指令API。以下是編寫自定義v-model指令的步驟&#xff1a; 定義一個自定義指令對象。在指令對象的bind鉤子函數中&…

簡單認識一下-Redis

一、什么是Redis Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的、基于內存的數據結構存儲系統&#xff0c;它既可以用作數據庫、緩存&#xff0c;也可以作為消息中間件使用。以下為你詳細介紹 Redis&#xff1a; 基本特點 高性能&#xff1a;Redis 將數…

LabVIEW的吞雨測控系統

本案例介紹了一種基于LabVIEW開發的吞雨測控系統&#xff0c;該系統通過建模仿真分析不同控制器模式下的階躍信號響應&#xff0c;從而選擇了最適合的控制器。為了有效解決在控制流量過程中出現的振蕩收斂和流量信號大擾動問題&#xff0c;系統采用了改進的積分分離PID算法&…

C++中的順序容器(一)

文章目錄 順序容器概述所有容器類型都支持的操作迭代器容器定義與初始化將一個容器初始化為另一個容器的拷貝標準庫array具有固定大小 賦值和swap關系運算符 順序容器的特有操作向順序容器添加元素訪問元素刪除元素特殊的forward_list操作改變容器的大小容器操作可能是迭代器失…

Javaweb中,使用Servlet編寫簡單的接口

案例&#xff1a;網頁提交用戶名和密碼信息&#xff0c;后端校驗密碼長度需在6-12位之間 后端部分 WebServlet("/valid") public class SimpleServlet extends HttpServlet{public void service(HttpServletRequest req, HttpServletResponse resp) throws IOExcepti…

C語言實現的常見排序算法

排序是計算機科學中非常重要的基礎算法之一。無論是在數據分析、數據庫查詢還是圖形界面中&#xff0c;我們都可能會遇到排序問題。本文將介紹幾種常見的排序算法&#xff0c;并提供其C語言實現代碼。排序算法的效率和應用場景有很大關系&#xff0c;不同的算法有不同的時間復雜…