AngularJS中的node_modules目录是什么

What is node_modules directory in AngularJS?

本文关键字:是什么 modules 中的 node AngularJS      更新时间:2023-09-26

我正在探索AngularJS教程项目,发现里面有node_modules目录,大小为60兆字节。

简单的客户端javascript项目真的需要如此庞大的未知数据语料库吗?

我试图删除这个目录,但项目仍然有效。我怀疑它在某种程度上与node.js有关,它是npm,但怎么回事?假设我需要在一些传统的web服务器(而不是node.js)上运行我的项目,那么如何知道哪些文件/目录是不需要的?

许多javascript库需要使用bower来安装它们。如果我使用bower,这是否意味着我需要保留node_modules

node_modules目录仅适用于构建工具

应用程序根目录中的package.json文件定义了运行npm install时将在node_modules中安装哪些库。

对于angular应用程序,通常在开发机器或构建服务器上,您会使用npm(node.js包管理器)中的其他Javascript库来构建angular应用。任务可以是串联资源,使用LESS或SASS等CSS预处理器,缩小、替换值等。管理和运行这些任务的最常见工具称为gruntgulp,它们也通过npm安装。

部署应用程序时,只分发生成的构建,而不分发任何源文件或构建工具。

当然,在不构建任何东西的情况下编写AngularJS应用程序是可能的。

从评论中编辑:当你深入研究Angular时,甚至在客户端应用程序中,也有使用npm安装的库的更先进的技术,然后你可以选择性地选择你需要的库,而不是整个50MB+的东西。不过,我建议你坚持基本的方法,直到你很好地掌握它们。

NPM是节点包管理器,它将包本地安装到项目中,特别是node_modules文件夹中。从那里,包代码可以包含在项目中,是的,can是其中的重要单词。

浏览器还没有办法在代码中包含模块,所以您需要使用一个可以公开节点的commonJS风格模块的库。Browserify和Webpack是两种流行的方法

Angular引入了自己的模块系统,使其更加复杂,该系统更像AMD风格的模块。有一些方法可以解决这个问题,这样您就可以使用节点样式的模块,也许您的项目会使用这些模块。

使用npm来管理依赖关系是个好主意,它是一个很棒的包管理器。不过,在您的情况下,项目可能仅使用node构建,并且node_modules文件夹包含仅与构建相关的依赖项。