搜索
首页web前端css教程NPM的明确定义及其做什么

A Clear Definition of npm and What it Does

现代前端开发工具繁多,初学者常常感到困惑。许多概念看似单一,实则由多个相互关联的部分构成,npm 及其生态系统便是如此。

例如,“互联网”一词看似简单,却包含协议、DNS、服务器、浏览器、网络、请求和响应等众多组件,以及多年迭代积累的其他技术。浏览器本身也是由多个部分组成的复杂系统。

指南章节

  1. 本指南面向何人?
  2. “npm”到底指什么?(当前章节)
  3. 命令行是什么?
  4. Node.js 是什么?
  5. 包管理器是什么?
  6. 如何安装 npm?
  7. 如何安装 npm 包?
  8. npm 命令是什么?
  9. 如何安装现有的 npm 项目?

npm 是一个技术集合

同样,我们通常所说的“npm”(全部小写)以及“前端后端”实际上是许多不同技术和系统的集合,如同一个复杂的鲁布·戈德堡机械装置,用于生成浏览器友好的代码。

前面提到了命令行,它是我们与 npm 生态系统交互的主要方式,下一章将详细介绍。

npm 本身属于“包管理”软件类别,我们也会对此进行讲解。事实上,在本指南中,我可能会经常将 npm 称为包管理器。

最后是 Node.js 本身,它难以简洁地解释,我经常用道格拉斯·亚当斯的话来概括:它是一种几乎——但并非完全——类似于 JavaScript 的编程语言。

npm 管理项目工具

更复杂的是,许多在命令行中输入 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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
CSS动画:很难创建它们吗?CSS动画:很难创建它们吗?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSS计数器:自动编号的综合指南CSS计数器:自动编号的综合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用卷轴驱动动画的现代滚动阴影使用卷轴驱动动画的现代滚动阴影May 07, 2025 am 10:34 AM

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

重新访问图像图重新访问图像图May 07, 2025 am 09:40 AM

让我们快速进修。图像地图一直返回到HTML 3.2,首先是服务器端地图,然后使用映射和区域元素通过图像上的单击区域定义了可单击区域。

DEV状态:每个开发人员的调查DEV状态:每个开发人员的调查May 07, 2025 am 09:30 AM

开发委员会调查现已开始参与,并且与以前的调查不同,它涵盖了除法:职业,工作场所,以及健康,爱好等。 

什么是CSS网格?什么是CSS网格?Apr 30, 2025 pm 03:21 PM

CSS网格是创建复杂,响应式Web布局的强大工具。它简化了设计,提高可访问性并提供了比旧方法更多的控制权。

什么是CSS Flexbox?什么是CSS Flexbox?Apr 30, 2025 pm 03:20 PM

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。