-
Notifications
You must be signed in to change notification settings - Fork 1
术语表
kaixa edited this page Jul 24, 2022
·
5 revisions
Node.js 是一个 JavaScript 运行时。Node.js 使 JavaScript 不再依赖于浏览器环节,而是运行在系统环境 (类似 Python),这使得 JavaScript 可以用于编写服务器程序或是其他工具程序。我们在开发过程中使用的 npm, pnpm 等工具都基于 Node.js。
运行时 (Runtime) ,或虚拟机,是解释执行代码的软件。不同于 C/C++ 这种编译型语言,JavaScript,Python 等脚本语言依赖运行时才可以在系统上运行。运行时读取脚本语言,将脚本语言解释为字节码 (bytecode),然后运行这些字节码。
可以认为运行时是一个虚拟的计算机,而字节码就是这个虚拟计算机的汇编指令。脚本语言的开发者会保证在不同的系统,不同架构的机器上提供一个行为相同的虚拟机,因此我们的字节码无需适配不同平台,即可到处运行。
npm 是一个包管理工具,可以为项目安装由其他作者开发的程序包,通过这些程序包可以复用其他人开发好的功能,简化了开发复杂度。由于 npm 早期存在许多问题,社区还有 yarn,pnpm 作为包管理工具。通常它们都会兼容 npm 的指令。如:
当某个包写道,使用以下指令安装:
npm install xxx
通常你可以直接把 npm 替换成 yarn 或 pnpm
yarn install xxx
# 或
pnpm install xxx
广义上讲,当你的程序需要某个程序包 A 才能正常运行的时候,就会说:A 是你的程序的依赖。对于本项目,特指项目开发过程中引用的其他程序包,程序包可能来自 npm 或 monorepo。
monorepo 是一个组合词,mono
表示“多个”,repo
表示“仓库”。monorepo 是一种新的项目组织形式,一个 git 仓库中同时存放多个 node 项目。