【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开发环境由以下主要部分组成:
- Node.js 运行时:提供JavaScript运行环境。
- 包管理器 (npm 或 yarn):管理项目依赖。
- 代码编辑器或 IDE:编写和调试代码。
- 版本控制工具 (Git):管理代码版本和协作。
- 调试工具:调试应用程序。
- 构建工具:打包和优化代码。
- 测试框架:编写和运行测试。
- CI/CD 工具:自动化构建、测试和部署。
- 容器化工具 (Docker):创建和管理容器化环境。
- 其他工具 (nodemon, PM2):提升开发效率。
- 环境变量和配置文件:管理应用配置。
- 安全性工具:确保应用安全。
- 文档和注释工具:编写和维护文档。
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 CI、CircleCI:基于云的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 audit或yarn 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. 配置环境变量
为了让系统识别
node和npm命令,需要将 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.js和npm是否安装成功。
# 检查 Node.js 版本
node -v
# 输出示例: v18.17.1# 检查 npm 版本
npm -v
# 输出示例: 9.6.7
至此,通过上面的步骤,我们可以在Linux系统中使用二进制发行版成功安装Node.js,并配置好环境变量以便于全局使用
node和npm命令。此外,使用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】
⚠️若博客里的内容有问题,欢迎指正,我会及时修改!!!
下周同一时间再见,各位伙伴们🚴🏻♀️~~

相关文章:
【Linux】Ubuntu Linux 系统——Node.js 开发环境
ℹ️大家好,我是练小杰,今天星期五了,同时也是2025年的情人节,今晚又是一个人的举个爪子!! 🙂 本文是有关Linux 操作系统中 Node.js 开发环境基础知识,后续我将添加更多相关知识噢&a…...
LC-搜索二维矩阵II、相交链表、反转链表、回文链表、环形链表、环形链表ll
搜索二维矩阵II 方法:从右上角开始搜索 我们可以从矩阵的右上角开始进行搜索。如果当前元素 matrix[i][j] 等于 target,我们直接返回 true。如果 matrix[i][j] 大于 target,说明 target 只能出现在左边的列,所以我们将列指针向左…...
小米平板怎么和电脑共享屏幕
最近尝试使用小米平板和电脑屏幕分屏互联 发现是需要做特殊处理的,需要下载一款电脑安装包:小米妙享 关于这个安装包,想吐槽的是: 没有找到官网渠道,是通过其他网络方式查到下载的 不附录链接,原因是因为地…...
Python elasticsearch客户端连接常见问题整理
python 访问 elasticsearch 在python语言中,我们一般使用 pip install elasticsearch 软件包,来访问es服务器。 正确用法 本地安装elasticsearch时,应指定与服务端相同的大版本号: pip install elasticsearch7.17.0然后就可以…...
目标检测IoU阈值全解析:YOLO/DETR模型中的精度-召回率博弈与工程实践指南
一、技术原理与数学本质 IoU计算公式: IoU \frac{Area\ of\ Overlap}{Area\ of\ Union} \frac{A ∩ B}{A ∪ B}阈值选择悖论: 高阈值(0.6-0.75):减少误检(FP↓)但增加漏检(FN↑…...
算法——数学建模的十大常用算法
数学建模的十大常用算法在数学建模竞赛和实际问题解决中起着至关重要的作用。以下是这些算法的具体信息、应用场景以及部分算法的C语言代码示例(由于篇幅限制,这里只给出部分算法的简要代码或思路,实际应用中可能需要根据具体问题进行调整和扩…...
Electron:使用electron-react-boilerplate创建一个react + electron的项目
使用 electron-react-boilerplate git clone --depth 1 --branch main https://github.com/electron-react-boilerplate/electron-react-boilerplate.git your-project-name cd your-project-name npm install npm start 安装不成功 在根目录加上 .npmrc文件 内容为 electron_…...
在linux系统中安装Anaconda,并使用conda
系统 : ubuntu20.04 显卡:NVIDIA GTX1650 目录 安装Anaconda第一步:下载合适版本的Anconda1. 查看自己Linux的操作系统及架构命令:uname -a2. 下载合适版本的Anconda 第二步:安装Aanconda1. 为.sh文件设置权限2. 执行.sh文件2.1 .…...
渗透测试--文件包含漏洞
文件包含漏洞 前言 《Web安全实战》系列集合了WEB类常见的各种漏洞,笔者根据自己在Web安全领域中学习和工作的经验,对漏洞原理和漏洞利用面进行了总结分析,致力于漏洞准确性、丰富性,希望对WEB安全工作者、WEB安全学习者能有所帮助…...
Go入门之语言变量 常量介绍
func main(){var a int8 10var b int 5var c int 6fmt.Println("a", a, "b", b, "c", c)d : 10fmt.Printf("a%v leixing%T\n", d, d) } main函数是入口函数,fmt包有三个打印的函数Println,Print,Printf。第…...
DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决
我的个人主页 我的专栏:人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!!点赞👍收藏❤ 一、引言 在机器学习的广袤天地中,大型语言模型(LLM)无疑是最…...
【机器学习】深入浅出KNN算法:原理解析与实践案例分享
在机器学习中,K-最近邻算法(K-Nearest Neighbors, KNN)是一种既直观又实用的算法。它既可以用于分类,也可以用于回归任务。本文将简单介绍KNN算法的基本原理、优缺点以及常见应用场景,并通过一个简单案例帮助大家快速入…...
C#使用文件读写操作实现仙剑五前传称号存档修改
手把手教学仙剑五前传 称号存档修改器 首先找到 Pal5Q所在目录的save\global.sav 文件,这是一个只有488字节的文件,这里存放称号对应的编号ID,以及是否已获得该称号,1为已获取称号,0为未获取称号 [称号:是否获取]这是一个键值对 称号的编号ID是一个Int32数字,使用C#的方法Bi…...
计算机专业知识【探秘 C/S 工作模式:原理、应用与网络协议案例】
在计算机网络的世界里,C/S 工作模式是一种非常重要且广泛应用的架构模式。它如同一位幕后功臣,默默支撑着我们日常使用的众多网络服务。下面将详细介绍 C/S 工作模式是什么,以及哪些常见的应用和网络协议采用了这种模式。 一、C/S 工作模式的…...
Django创建一个非前后端分离平台
1.pub_blog前端创立 1.blog/pub路由 注意两个路由的区别 2.完善页面 用表单实现 3.加载wangeditor的几个文件 4.配置样式 5.配置js代码,单独放在js文件夹中,js文件夹pub_blog onload事件,加载完成后会再加载 5.提交按钮...
适用于iOS的应用商店优化(ASO)清单
面对App Store的激烈竞争,您想优化您的应用使其在竞争中脱颖而出,但又不知道应该从哪里开始。我们已经为您准备好了!我们整理了一份适用于iOS的应用商店优化(ASO)检查清单,用以帮助您入门并提高您在App Sto…...
SSH远程服务器免密码连接|含注意事项细节
需求描述:我想配置本地机器到ssh远程服务器的免密码连接,注意我日常会使用的集群有多个节点,每个节点的用户名以及密码都是一样的,但是不同节点的用户目录下的数据并不互通。 方案: 配置本地机器到 SSH 远程服务器的…...
本地通过隧道连接服务器的mysql
前言 服务器上部署了 mysql,本地希望能访问该 mysql,但是又不希望 mysql 直接暴露在公网上 那么可以通过隧道连接 ssh 端口的方式进行连接 从外网看,服务器只开放了一个 ssh 端口,并没有开放 3306 监听端口 设置本地免密登录 …...
Hadoop 基础原理
Hadoop 基础原理 基本介绍Hadoop 的必要性Hadoop 核心组件Hadoop 生态系统中的附加组件 HDFSHDFS 集群架构HDFS 读写流程HDFS 写流程HDFS 读流程 NameNode 持久化机制 MapReduce底层原理示例 Hadoop 是一个由 Apache 基金会开发的分布式系统基础架构,主要解决海量数…...
JavaScript 任务队列详解:Event Loop、宏任务与微任务
JavaScript 任务队列详解:Event Loop、宏任务与微任务 在 JavaScript 的世界里,异步编程是一个至关重要的概念。JavaScript 采用 单线程 运行方式,但能够处理异步任务,这一切都要归功于 事件循环(Event Loopÿ…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
