【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.mzph.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;不同的算法有不同的时间复杂…