Nodejs教程

2025-03-27
3分钟阅读时长

介绍

Node.js 是一个基于 Chrome V8 引擎的开源、跨平台 JavaScript 运行时环境,允许开发者在服务器端使用 JavaScript 构建高性能、可扩展的网络应用。其核心优势在于事件驱动架构非阻塞 I/O 模型,特别适合处理高并发、实时交互场景。

对比

技术 Node.js Python Java PHP
性能 非阻塞 I/O,适合高并发(如聊天应用) 同步阻塞,适合 CPU 密集型任务 多线程,适合企业级复杂逻辑 同步阻塞,适合中小型 Web 应用
开发效率 前后端统一语言,npm 生态丰富 语法简洁,AI 库(如 TensorFlow) 语法严谨,框架成熟(如 Spring) 快速搭建 CMS(如 WordPress)
适用场景 实时应用、微服务、边缘计算 数据科学、机器学习 银行系统、ERP 等大型项目 传统 Web 开发、内容管理系统

1.管理node版本: nvm

安装nvm

以下都在linux开发环境下进行

cd $HOME
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash

使用

安装nodejs

nvm install 22.14.0

列出可用版本

nvm list-remote

切换并设置默认版本

nvm use --lts
nvm alias default --lts

2.管理依赖: pnpm

为什么选择pnpm

功能 pnpm Yarn npm
工作空间支持 ✔️ ✔️ ✔️
隔离的 node_modules ✔️ - 默认 ✔️ ✔️
提升的 node_modules ✔️ ✔️ ✔️ - 默认
自动安装对等依赖 ✔️ ✔️
Plug’n’Play ✔️ ✔️ - 默认
零安装 ✔️
修补依赖项 ✔️ ✔️
管理 Node.js 版本 ✔️
拥有锁文件 ✔️ - pnpm-lock.yaml ✔️ - yarn.lock ✔️ - package-lock.json
支持覆盖 ✔️ ✔️ - 通过 resolutions ✔️
内容可寻址存储 ✔️
动态包执行 ✔️ - 通过 pnpm dlx ✔️ - 通过 yarn dlx ✔️ - 通过 npx
副作用缓存 ✔️
列出许可证 ✔️ - 通过 pnpm licenses list ✔️ - 通过插件

corepack

corepack是一个nodejs自带的包管理器的管理工具,主要是用来管理诸多的包管理器的。 (PS:前端的包管理器好混乱,还整出来一个管理包管理器的工具🤣)

高版本默认自带corepack

(base) root@pro:~# npm ls -g
/root/.nvm/versions/node/v22.14.0/lib
├── [email protected]
└── [email protected]

安装pnpm

安装之前先全局升级下corepack ,否则会触发签名过时的bug

(base) root@pro:~# npm install --global corepack@latest

changed 1 package in 2s
(base) root@pro:~# npm ls -g
/root/.nvm/versions/node/v22.14.0/lib
├── [email protected]
└── [email protected]
(base) root@pro:~# corepack enable pnpm

(base) root@pro:~# corepack use pnpm@latest
Installing [email protected] in the project...

Already up to date
Done in 294ms using pnpm v10.7.0

使用

命令 功能说明 示例
基础命令
pnpm init 初始化新项目,生成 package.json 文件。 pnpm init -y(快速初始化,跳过交互)
pnpm install / pnpm i 安装项目所有依赖(根据 package.json)。 pnpm i
pnpm add 添加依赖到 dependencies。 pnpm add react
pnpm add -D 添加依赖到 devDependencies。 pnpm add -D typescript
pnpm add -g 全局安装依赖。 pnpm add -g pnpm
pnpm remove 移除依赖。 pnpm remove react
pnpm update 更新所有依赖到最新版本。 pnpm update
pnpm update 更新指定依赖到最新版本。 pnpm update react
pnpm list 列出项目依赖树。 pnpm list
pnpm why 查看依赖来源及路径。 pnpm why lodash
工作区管理
pnpm workspace 管理多项目工作区(Monorepo)。 pnpm workspace
pnpm -r 递归执行命令到所有工作区。 pnpm -r build(构建所有项目)
pnpm –filter 对指定工作区执行命令。 pnpm –filter my-package test(运行 my-package 的测试)
pnpm workspace add -w 在根工作区安装全局依赖。 pnpm workspace add react -w
高级功能
pnpm config 管理 pnpm 配置。 pnpm config set registry https://registry.npmmirror.com(设置淘宝镜像)
pnpm store prune 清理未使用的包缓存,释放磁盘空间。 pnpm store prune
pnpm audit 安全审计,检查依赖漏洞。 pnpm audit
pnpm exec 执行本地或全局命令(类似 npx)。 pnpm exec eslint
pnpm dlx 临时安装并运行包(无需全局安装)。 pnpm dlx create-react-app my-app
pnpm patch 创建依赖补丁。 pnpm patch [email protected]
pnpm publish 发布包到 npm 仓库。 pnpm publish
特殊场景
pnpm install –offline 强制离线安装,仅使用本地缓存。 pnpm install –offline
pnpm install –force 强制重新安装所有依赖,忽略缓存。 pnpm install –force
pnpm install –frozen-lockfile 仅根据 pnpm-lock.yaml 安装,不更新锁文件。 pnpm install –frozen-lockfile
pnpm import 从 package-lock.json 或 yarn.lock 导入依赖。 pnpm import
pnpm rebuild 重新编译二进制依赖(如原生插件)。 pnpm rebuild

3.管理镜像源: nrm

pnpm add -g nrm

设置 npm 镜像源

nrm use taobao

测速

(base) root@pro:~# nrm test
  npm ---------- 2060 ms
  yarn --------- 1903 ms
  tencent ------ 1362 ms
  cnpm --------- 1240 ms
* taobao ------- 511 ms
  npmMirror ---- 1556 ms (Fetch error, if this is your private registry, please ignore)
  huawei ------- 992 ms

添加/删除自定义镜像源

nrm add myregistry https://my-registry.com
nrm del myregistry
上一页 Vue3项目实战