现代前端开发工具繁多,初学者常常感到困惑。许多概念看似单一,实则由多个相互关联的部分构成,npm 及其生态系统便是如此。
例如,“互联网”一词看似简单,却包含协议、DNS、服务器、浏览器、网络、请求和响应等众多组件,以及多年迭代积累的其他技术。浏览器本身也是由多个部分组成的复杂系统。
同样,我们通常所说的“npm”(全部小写)以及“前端后端”实际上是许多不同技术和系统的集合,如同一个复杂的鲁布·戈德堡机械装置,用于生成浏览器友好的代码。
前面提到了命令行,它是我们与 npm 生态系统交互的主要方式,下一章将详细介绍。
npm 本身属于“包管理”软件类别,我们也会对此进行讲解。事实上,在本指南中,我可能会经常将 npm 称为包管理器。
最后是 Node.js 本身,它难以简洁地解释,我经常用道格拉斯·亚当斯的话来概括:它是一种几乎——但并非完全——类似于 JavaScript 的编程语言。
更复杂的是,许多在命令行中输入 npm install
的项目可能预装了各种工具,用于执行项目中的各种任务,例如处理代码(例如,将 Sass 代码转换为 CSS)。许多一站式预配置项目可供直接安装使用(例如 Create React App、Next.js、Nuxt.js 和 SvelteKit)。这固然方便,但也增加了复杂性——意味着我们需要在“前端后端”事物的清单中添加更多名称。
此清单通常包括 Babel(用于编译 JavaScript)、Sass(用于编译 CSS)、Webpack(用于资源捆绑)、Vite(用于开发服务器和其他工具)、PostCSS(用于将一种语法转换为另一种语法)、Autoprefixer(可以作为 PostCSS 插件用于 CSS 供应商前缀)、TypeScript(用于额外的 JavaScript 语法)、ESLint(用于检查代码质量)、Prettier(用于格式化代码)以及 Jest 或 Cypress 等测试库。
所有这些(以及更多)工具都属于一个广泛的类别,它们通常与 npm 安装的项目一起提供——或者可以通过 npm 安装和使用——但实际上并非 npm 本身的一部分。它们只是现代工具的示例,有助于我们更好地处理代码,在这里提及它们只是为了说明区别,以便了解在这个庞大而新兴的世界中界限在哪里。
顺便说一句,如果您不知道上面提到的大多数(或任何)工具是什么,没关系。也许您还没有遇到过它们,或者您曾在项目中安装了它们而不知道它们的名称。无论哪种方式,所有这些都只是为了提供额外的上下文。
如果您此时感到有些不知所措,请不要担心。我希望您在阅读本章后能够记住的关键点是,我们认为的“npm”(或者更随意地说,“所有那些命令行、后端的东西”)并不是单一事物,而是一组协同工作的组件,使开发对我们来说更容易。
是的:虽然所有这些复杂性一开始看起来令人生畏,但它确实使事情变得更好。我保证。
虽然前端发展似乎非常迅速,但您并没有被落下。您可能只需要进行一些持续的学习来赶上进度。
← 第 1 章 第 3 章 →
以上是NPM的明确定义及其做什么的详细内容。更多信息请关注PHP中文网其他相关文章!