【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.rhkb.cn/news/17933.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek全方位解读:模型介绍,优势及应用场景

DeepSeek全方位解读&#xff1a;领先科技背后的革新力量 前言1.DeepSeek整体介绍2.DeepSeek-R13.DeepSeek-V34.DeepSeek系列模型之间的关系5.Deepseek优势及应用场景6.模型参数与量化精度的关系7.行业部署Deepseek及应用情况 前言 在当今快速发展的科技世界里&#xff0c;人工…

电脑端调用摄像头拍照:从基础到实现

文章目录 1. 了解navigator.mediaDevices.getUserMedia API2. 创建 HTML 结构3. 编写 JavaScript 代码3.1 打开摄像头3.2 拍照 4. 完整代码5. 测试6. 注意事项及部署 在现代 Web 开发中&#xff0c;调用摄像头进行拍照是一个常见的功能&#xff0c;尤其是在需要用户上传头像、进…

windows平台上 oracle简单操作手册

一 环境描述 Oracle 11g单机环境 二 基本操作 2.1 数据库的启动与停止 启动: C:\Users\Administrator>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on 星期五 7月 31 12:19:51 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. 连接到:…

Java面试——Tomcat

优质博文&#xff1a;IT_BLOG_CN 一、Tomcat 顶层架构 Tomcat中最顶层的容器是Server&#xff0c;代表着整个服务器&#xff0c;从上图中可以看出&#xff0c;一个Server可以包含至少一个Service&#xff0c;用于具体提供服务。Service主要包含两个部分&#xff1a;Connector和…

3. 导入官方dashboard

官方dashboard&#xff1a;https://grafana.com/grafana/dashboards 1. 点击仪表板 - 新建 - 导入 注&#xff1a;有网络的情况想可以使用ID&#xff0c;无网络情况下使用仪表板josn文件 2. 在官方dashboard网页上选择符合你现在数据源的dashboard - 点击进入 3. 下拉网页选…

你如何利用SIMD(如SSE/AVX)优化图像处理的性能?

SIMD优化问题 1. SIMD 在图像处理中的优化方式2. 典型应用场景3. SIMD 的常见优化技巧4. 总结 利用 SIMD&#xff08;Single Instruction, Multiple Data&#xff09; 指令集&#xff08;如 SSE/AVX/AVX2/AVX-512&#xff09;优化图像处理的性能&#xff0c;可以极大地提升计算…

高并发场景下,如何用无锁实现高性能LRU缓存?

《百万人高并发场景下&#xff0c;我如何用无锁实现高性能LRU缓存&#xff1f;》 LRU算法核心原理 LRU&#xff08;Least Recently Used&#xff09;算法是缓存系统的核心淘汰策略&#xff0c;其核心逻辑可以用一张流程图描述&#xff1a; &#xff08;图&#xff1a;访问数…

HAL库框架学习总结

概述&#xff1a;HAL库为各种外设基本都配了三套 API&#xff0c;查询&#xff0c;中断和 DMA。 一、HAL库为外设初始化提供了一套框架&#xff0c;这里以串口为例进行说明&#xff0c;调用函数 HAL_UART_Init初始化串口&#xff0c;此函数就会调用 HAL_UART_MspInit&#xff0…

LAWS是典型的人机环境系统

致命性自主武器系统&#xff08;Lethal Autonomous Weapons Systems&#xff0c;LAWS&#xff09;是一种典型的人机环境系统&#xff0c;它通过高度集成的传感器、算法和武器平台&#xff0c;在复杂的战场环境中自主执行任务。LAWS能够自主感知环境、识别目标、做出决策并实施攻…

【16届蓝桥杯寒假刷题营】第1期DAY4

4.可达岛屿的个数 - 蓝桥云课 题目背景 在一个神奇的魔法世界中&#xff0c;有一座古老的迷幻之城。迷幻之城被分成 n 个鸟屿&#xff0c;编号从 1 到 n&#xff0c;共有 m 座桥。迷幻之城的居民们希望能够建立起紧密的联系&#xff0c;每个岛屿上的居民都想知道自己最多能到…

【物联网】电子电路基础知识

文章目录 一、基本元器件1. 电阻2. 电容3. 电感4. 二极管(1)符号(2)特性(3)实例分析5. 三极管(1)符号(2)开关特性(3)实例6. MOS管(产效应管)(1)符号(2)MOS管极性判定(3)MOS管作为开关(4)MOS管vs三极管7. 门电路(1)与门(2)或门(3)非门二、常用元器件…

数据结构 04

4. 栈 4.2. 链式栈 4.2.1. 特性 逻辑结构&#xff1a;线性结构 存储结构&#xff1a;链式存储结构 操作&#xff1a;创建&#xff0c;入栈&#xff0c;出栈&#xff0c;清空&#xff0c;获取 4.2.2. 代码实现 头文件 LinkStack.h #ifndef __LINKSTACK_H__ #define __LINKST…

【云安全】云原生-K8S(四)安全问题分析

Kubernetes&#xff08;K8S&#xff09;因其强大的容器编排能力成为了云计算和微服务架构的首选&#xff0c;但同时也带来了复杂的安全挑战。本文将概述K8S的主要安全问题&#xff0c;帮助安全工程师理解潜在威胁&#xff0c;并采取相应的防护措施。 K8S 攻击面概览 下面两张…

【Unity新手】Text不显示字的问题解决办法

很多同学在unity里导入了一个Text发现字没有显示出来为什么呢&#xff1f; 首先在网络上下载一个.ttf或者.otf字体文件&#xff0c;导入资源&#xff0c;比如说我下载了黑体.otf 然后导入unity&#xff0c;右键字体TextMesgPro-FontAsset 然后字体设置里添加上就可以了

基于Flask的影视剧热度数据可视化分析系统的设计与实现

【FLask】基于Flask的影视剧热度数据可视化分析系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 随着互联网技术的飞速发展&#xff0c;影视剧行业的数据量呈爆炸性增长&#x…

React 低代码项目:组件设计

React 低代码项目&#xff1a;组件设计 Date: February 6, 2025 React表单组件 **目标&#xff1a;**使用 Ant Design 表单组件&#xff0c;开发登录、注册、搜索功能 内容&#xff1a; 使用 React 表单组件、受控组件使用 Ant Design 表单组件使用 表单组件的校验和错误提…

vue-plugin-hiprint (vue2

页面效果 <template><div><div class="d-flex flex-column mt5"><div class="d-flex flex-row " style="margin-bottom: 10px;justify-content: center;"><!-- 纸张大小 A3、A4 等 --><div class="paper…

C++17 中的 std::reduce:详细教程

文章目录 1. 简介2. 函数签名3. 使用场景3.1 简单的累加操作3.2 自定义归并操作3.3 并行计算的性能优势 4. 注意事项4.1 归并操作的结合律和交换律4.2 默认值的使用 5. 总结 1. 简介 std::reduce 是 C17 标准库中引入的一个算法&#xff0c;用于对范围内的元素进行归并操作。它…

kafka介绍,kafka集群环境搭建,kafka命令测试,C++实现kafka客户端

目录 kafka介绍kafka集群环境搭建zookeeper安装与配置kafka安装与配置 kafka命令测试C实现kafka客户端librdkafka库编译新版本cmake编译cppkafka库编译C实现kafka生产者和消费者客户端 kafka介绍 定义与概述 Apache Kafka 是一个开源的分布式流处理平台&#xff0c;最初由 Lin…

华为云+硅基流动使用Chatbox接入DeepSeek-R1满血版671B

华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 硅基流动 1.1 注册登录 1.2 实名认证 1.3 创建API密钥 1.4 客户端工具 OllamaChatboxCherry StudioAnythingLLM 资源包下载&#xff1a; AI聊天本地客户端 接入Chatbox客户端 点击设置 选择SiliconFloW API 粘贴1.3创…