JavaScript 包管理器

JavaScript 包管理器

Node.js 和 JavaScript 之间的联系和区别

Node.js 使用的是 JavaScript 语言。换句话说,Node.js 不是一种新的编程语言,而是一个运行时环境,它使用 JavaScript 作为其编程语言。

  • 运行环境:传统上,JavaScript 主要在浏览器中运行,用于为网站提供交互性和动态功能。Node.js它是一个允许在服务器端运行 JavaScript 的平台。
  • API 和对象: 在浏览器环境中,JavaScript 提供了许多专门针对网页交互的 API,如 document, window 等。Node.js提供了许多服务器端功能的 API,例如文件系统操作、网络请求、流等。它没有浏览器提供的 DOM API。

  • 用途:JavaScript主要用于浏览器中,为网页添加交互性。Node.js用于构建服务器端应用程序,但也可以用于构建工具、脚本等。
  • 工具和库:
    • JavaScript:有很多库和框架,如 jQuery, React, Angular, Vue 等,专为浏览器环境设计。
    • Node.js:拥有一个庞大的包生态系统(npm),其中包含大量为服务器端开发和其他任务设计的库和工具。

NVM

Node Version Manager: Node.js 版本管理器

NVM for Windows Github: https://github.com/coreybutler/nvm-windows

nvm current: Display active version.
nvm list installed

NVM安装的每个 Node.js 版本都有其独立的全局 npm 包,这样可以避免版本冲突。

npm

NPM (Node Package Manager) 是 Node.js 的默认包管理器,用于安装、管理和发布 JavaScript 库。

npx

npx 是 npm 包运行器工具,它随 npm 5.2.0 而来。它允许用户运行局部安装的命令行工具,或者直接从 npm 上运行代码,而不需要全局安装。

NPX可以直接运行包而无需全局/局部安装。也可以轻松运行不同版本的工具。npx会在执行后自动清理,不会保留全局安装。

NPX主要是为了解决某些特定的使用场景,不是一个完整的包管理器。

yarn

yarn 是一个 JavaScript 包管理器,由 Facebook 推出,作为 npm 的替代方案。

yarn.lock 文件确保了安装的依赖版本的一致性。

PNPM

PNPM 是另一个 JavaScript 包管理器,其目标是更高效地存储项目的依赖,节省空间。

  • 使用硬链接和符号链接存储 node_modules,从而节省空间。
  • 严格的 node_modules 结构,确保所有项目共享相同的依赖版本。

最终选择

以pnpm为主。如果跑很老项目有依赖问题运行不起来就换yarn。最后要是还有问题就只能回去用npm了。