Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:javascript:nodejs

Node.js


用途

帮助Js在浏览器以外运行,拓展Js的运行环境,Js就可以做更多类型的工作了。就像Java的虚拟机/Python的解释器。

AI:(Node.js 和 npm 的简介)

  1. Node.js:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境。简单来说,它让 JavaScript 能够在服务器上运行,而不仅仅是在浏览器中。Node.js 提供了很多可以在开发过程中用到的工具和库,所以它在前端和后端开发中都非常流行。
  2. npm (Node Package Manager):npm 是 Node.js 的包管理器。它可以帮助你轻松安装、管理和使用 JavaScript 库和工具。npm 附带在 Node.js 安装包中,因此安装 Node.js 时会自动安装 npm。

安装

Windows版本直接下载安装包运行即可,安装好之后配置Path,主程序是node.exe,其就像一个解释器。使用node命令就可以进入交互窗口:REPL(Read Eval Print Loop/交互式解释器),使用.exit命令退出。Node.js自带一个包管理器npm,类似pip。

Mac上安装:

brew install node

node -v
npm -v

Linux (Ubuntu)上安装:

# 简单 适合我这种新手
# 缺点是:可能安装的不是最新版本 并且不能管理多个node版本
sudo apt-get install nodejs npm

node的多版本管理:nvm (node version manager)

npm

npm有“全局”和“本地”的概念

  1. 全局安装的包是指安装到系统范围内的,而不是某个具体项目的 node_modules 中。与全局安装的包一起,会生成可执行的命令(如果包支持 CLI),这些命令可以直接在终端中运行,而无需在项目中引用,比如 @vue/cli 安装在全局,会提供管理 vue 项目的指令,而 vue 是安装在某个项目内部
  2. 本地安装的话,包仅在当前项目中可用,包文件存储在项目的 node_modules 文件夹
# 一个典型的 npm 包名:@vitejs/plugin-vue@5.2.1(@username/package_name@version)
# 带 @ 的是「组织(Scope)」包(第三方包),不带 @ 的是「普通」包(官方包)

npm list # 查看当前项目安装的包列表

npm list -g # 查看全局安装的包

# 本地安装一个包
# 默认安装到当前项目的 node_modules 文件夹中,并更新 package.json 和 package-lock.json
# 此处的项目,指的是 nodejs 项目,也就是一个文件夹,内含一个 package.json
# package.json 和 package-lock.json 是项目的一部分,记录本项目安装了哪些包
# 而 node_modules 文件夹应该被版本控制工具忽略
npm install <package-name>
npm install <package-name>@<version>

# 全局安装一个包
npm install -g <package-name>
npm install -g typescript # 安装一个包,-g代表安装在全局环境下
npm install -g npm # 更新npm

# install 也可用于更新

# 卸载本地包
npm uninstall <package-name>

# 卸载全局包
npm uninstall -g <package-name>

# 在当前目录创建 package.json
npm init

# 根据 package.json 安装包到 node_modules
npm install

npm使用别名安装包

# npm i <别名>@npm:<真实包名>
# 这样就可以做到,在一个项目里安装同一个包的不同版本
# 这个项目用到了别名安装:https://github.com/GZhonghui/WebTools
npm install @esotericsoftware/spine-player-41@npm:@esotericsoftware/spine-player@4.1.54

npm指令

# 一个node项目里面(应该)都会有 package.json 文件
# 请看文件:
...
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
...

# 如何执行「构建」等指令呢?就是看上面这些配置了
npm run dev
npm run build

开发依赖 vs 正式依赖

类型 命令 作用
dependencies npm install xxx 生产环境也需要的包,比如 Vue、Axios 等
devDependencies npm install -D xxx 或 –save-dev 只在开发/构建时需要,如构建工具、UI 库(某些情况下)

在package.json里面可以看到依赖项被标记为【dependencies】或【devDependencies】

Pnpm

https://pnpm.io/

改进版的npm(本地缓存package、增量记录package的修改等。总之就是为了减少node_modules的大小)

有很多安装方式,感觉用npm安装最简单

# pnpm 是 pnpm 的普通版本,需要 Node.js 才能运行。
npm install -g pnpm@latest-10

# @pnpm/exe 与 Node.js 一起打包成可执行文件,因此它可以在没有安装 Node.js 的系统上使用。
npm install -g @pnpm/exe@latest-10

安装好之后就可以直接代替npm了吗?

对Js的拓展

Node.js使得Js支持了哪些新特性?

/var/www/DokuWikiStick/dokuwiki/data/pages/程序/javascript/nodejs.txt · Last modified: 2025/08/05 08:26 by zhonghui