【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…...
使用pyCharm创建Django项目
使用pyCharm创建Django项目 1. 创建Django项目虚拟环境(最新版版本的Django) 使用pyCharm的创建项目功能,选择Django,直接创建。 2. 创建Django项目虚拟环境(安装特定版本) 2.1创建一个基础的python项目 2.2 安装指定版本的D…...
【前端框架】深入Vue 3组件开发:构建高效灵活的前端应用
一、引言 Vue 3作为一款流行的前端框架,其组件化系统是构建大型应用的核心。通过将应用拆分为多个可复用的组件,不仅能提高代码的可维护性与复用性,还能让开发团队进行高效的协作。本文将深入探讨Vue 3组件开发的各个方面,帮助开…...
基于Python flask-sqlalchemy的SQLServer数据库管理平台
适应场景: 主要用于帮助DBA自动化很多日常工作,包括: 数据库状态监控 性能问题诊断 日志分析 自动巡检 问题告警 系统截图: main.py from flask import Blueprint, render_template, request, flash, redirect, url_for f…...
npm运行Vue项目报错 error:0308010c:digital envelope routines::unsupported
大家好,我是 程序员码递夫。 问题 VSCode 运行Vue项目,提示错误: building 2/2 modules 0 activeError: error:0308010c:digital envelope routines::unsupported 解决方法 原因是 npm 高版本(大于17),对ssl的处理做了改进&…...
计数排序
目录 计数排序原理和步骤: 完整代码实现: 计数排序原理和步骤: 当一段数据比较集中在一个范围,比如 98,95,98,91,90,93,94,97,93&…...
MyBatis拦截器终极指南:从原理到企业级实战
在本篇文章中,我们将深入了解如何编写一个 MyBatis 拦截器,并通过一个示例来展示如何在执行数据库操作(如插入或更新)时,自动填充某些字段(例如 createdBy 和 updatedBy)信息。本文将详细讲解拦…...
Pythong 解决Pycharm 运行太慢
Pythong 解决Pycharm 运行太慢 官方给Pycharm自身占用的最大内存设低估了限制,我的Pycharm刚开始默认是256mb。 首先找到自己的Pycharm安装目录 根据合适自己的改 保存,重启Pycharm...
双ESP8266-01S通讯UDP配置
第一台ESP8266(发送命令需要勾---发送新行) ATCWMODE3 ATCWSAP_DEF"CAR_wifi_Master","12345678",5,3 //设置本地wifi名称以及密码 ATCIPSTA_DEF"192.168.4.1" //设置本地IP ATCIFSR …...
Molecular Communication(分子通信)与 Molecular Semantic Communication(分子语义通信)
1. 引言 随着传统无线通信在极端环境(如微观生物体内、海洋深处)中的局限性凸显,分子通信(Molecular Communication, MC)成为一种新型通信范式。分子通信通过分子作为信息载体,在纳米尺度上传输信息&#…...
Cookie:网页浏览背后的“小秘密”
在现代互联网的世界里,Cookie 是一个几乎无处不在的概念。它不仅影响着我们的网页浏览体验,还在背后默默地支持着许多网站的功能和服务。本文将带你全面了解 Cookie 的原理、作用、安全性以及如何管理它们。 一、什么是 Cookie? Cookie 是一…...
日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(6):動詞ない形について句型
日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(6):動詞ない形について句型 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)~動詞な形 +なければなりません(2)~動詞な形 + なくてもいいです(3)に まで までに :区別3、单词(1)日语单词…...
华纳云:如何从服务器日志中发现僵尸进程?
在 CentOS 系统中,僵尸进程通常指那些已经完成执行但仍然在进程表中存在的进程。它们没有实际的执行,但仍然占用系统资源,通常会出现在父进程没有及时回收子进程的状态下。虽然僵尸进程本身不消耗 CPU 或内存资源,但它们会占用进程…...
fastadmin 接口请求提示跨域
问题描述 小程序项目,内嵌h5页面,在h5页面调用后端php接口,提示跨域。网上查找解决方案如下: 1,设置header // 在入口文件index.php直接写入直接写入 header("Access-Control-Allow-Origin:*"); header(&q…...
NHANES指标推荐:DDA!
文章题目:Association of dietary decanoic acid intake with diabetes or prediabetes: an analysis from NHANES 2005-2016 DOI:10.3389/fnut.2024.1483045 中文标题:饮食中癸酸摄入量与糖尿病或糖尿病前期的关系:2005-2016 年 …...
用大模型学大模型04-模型与网络
目前已经学完深度学习的数学基础,开始学习各种 模型和网络阶段,给出一个从简单到入门的,层层递进的学习路线。并给出学习每种模型需要的前置知识。增加注意力机制,bert, 大模型,gpt, transformer, MOE等流行…...
PostgreSQL 数据库压力测试指南
一、为什么需要压力测试? 数据库需要进行压力测试的原因主要包括以下几个方面: 性能评估:通过压力测试,可以了解数据库在高负载情况下的性能表现,包括响应时间、吞吐量和资源利用率等。这有助于确定系统的性能瓶颈。 …...
oppo,康冠科技25届春招内推
oppo,康冠科技25届春招内推 ①康冠科技25届春招 【职位】算法、软件、硬件、技术,结构设计,供应链,产品,职能,商务 【一键内推】https://sourl.cn/2Mm9Lk 【内推码】EVBM88 ②OPPO 2025届春招内推 招聘岗位…...
元学习之孪生网络Siamese Network
简介:元学习是一种思想,一般以神经网络作为特征嵌入的工具,实现对数据特征的提取,然后通过构造某种指标以引导优化器对模型参数进行优化。而最小化距离是最常见的学习目标,这就是熟知的度量学习,度量学习里…...
Python----PyQt开发(PyQt高级:组件大小,界面位置,按钮,文本显示,文本输入,字体大小)
一、大小 setMinimumSize(width, height) 描述: 设置控件的最小尺寸。控件不会被缩小到比这个尺寸更小的大小。 参数: width: 最小宽度(以像素为单位)。 height: 最小高度(以像素为单位)。 button.setMinimumSize(100, …...
qt + opengl 给立方体增加阴影
在前几篇文章里面学会了通过opengl实现一个立方体,那么这篇我们来学习光照。 风氏光照模型的主要结构由3个分量组成:环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。下面这张图展示了这些光照分量看起来的样子: 1 环境光照(Ambient …...
vue2老版本 npm install 安装失败_安装卡主
vue2老版本 npm install 安装失败_安装卡主 特别说明:vue2老版本安装慢、运行慢,建议升级vue3element plus vite 解决方案1: 第一步、修改npm 镜像为国内镜像 使用淘宝镜像: npm config set registry https://registry.npmmir…...
20250213编译飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1
20250213编译飞凌的OK3588-C_Linux5.10.209Qt5.15.10_用户资料_R1 2025/2/13 11:43 缘起:飞凌发布了高版本内核的适配OK3588-C的Buildroot的SDK:OK3588-C_Linux5.10.209Qt5.15.10_用户资料_R1。 但是编译异常了。 于是按照百度升级libc6,可以…...
中望CAD c#二次开发 ——VS环境配置
新建类库项目:下一步 下一步 下一步: 或直接: 改为: <Project Sdk"Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>NET48</TargetFramework> <LangVersion>pr…...
【Elasticsearch】词干提取(Stemming)
词干提取是将一个词还原为其词根形式的过程。这确保了在搜索过程中,一个词的不同变体能够匹配到彼此。 例如,walking(行走)和walked(走过)可以被还原到同一个词根walk(走)。一旦被还…...
Rander压力测试监测,更改服务端资源node
测试策略 压力测试, 目前是本地VM的资源不够,导致压力瓶颈,目前本地的VM,CPU是6个,可以增加到8个,服务端目前资源利用率没有达到最高点 we are now using 3 nodes with 3 pods, therefore, we need the …...
Go语言实现十大排序算法超细节图片讲解
基础排序 冒泡排序 将序列中的元素进行两两比较,将大的元素移动到序列的末尾。 平均时间复杂度是O(n^2),最坏时间复杂度是O(n^2),最好时间复杂度是O(n),排序结果具有稳定性,空间复杂度是O(1)。 这里所说的稳定性是针对…...
linux-centos等测试环境做压力测试
一, jmeter环境安装 1, jdk下载安装 因为jmeter使用Java写的测试工具,应用需要jdk环境支持. yum -y install java-1.8.0-openjdk* 注意:【jdk和*通配符之间不能敲空格,有空格不能匹配所有的子文件】【安装过程中需要等待它执行完成,不要中…...
Django中实现可靠的定时任务调度系统
在许多Web应用程序中,定时任务是一个常见的需求。无论是数据同步、报告生成还是定期维护,都需要一个可靠的调度系统。本文将介绍如何在Django项目中实现一个强大的定时任务调度系统,该系统不仅能够按时执行任务,还能处理分布式环境中的并发问题。 1. 概述 我们将使用以下…...
【鸿蒙Next】写入沙箱的日志文件如何查看
demo案例:https://gitee.com/pengyoucongcode/TxtEdit 文章参考:https://blog.csdn.net/qq_42896653/article/details/144782468...
