什么是AngularJS中的node_modules目录?

我正在探索AngularJS教程项目,发现它里面有node_modules目录,如果大小是60兆字节的话。

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

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

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

node_modules目录仅用于构build工具

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

在开发机器或构build服务器上,通常使用angular度应用程序,使用npm(node.js包pipe理器)中的其他Javascript库来构buildangular度应用程序。 任务可以连接资源,使用CSS预处理程序(如LESS或SASS),缩小,replace值等。pipe理和运行这些任务的最常用工具称为gruntgulp ,它们也通过npm安装。

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

当然可以编写一个AngularJS应用程序,而不需要构build任何东西。

编辑评论:当你深入Angular的时候,还有更多先进的技术,即使在客户端应用程序中使用npm安装的库,然后有select地select你需要的,而不是整个50MB +的东西。 我build议留在基本方法,直到你很好地把握他们。

NPM是节点软件包pipe理器,它将软件包本地安装到项目中,特别是安装到node_modules文件夹中。 从那里的包代码可以包含到一个项目中,是的, jar头是那里的重要词汇。

浏览器没有办法在代码中包含模块,所以你需要使用一个可以暴露节点的commonJS风格模块的库。 Browserify和Webpack是这样做的两种stream行的方法。

Angular通过引入自己的模块系统来复杂化这个模块系统,这个模块系统更接近于AMD风格的模块。 有办法解决这个问题,所以你可以使用节点式的模块,也许你的项目使用这些。

使用npmpipe理依赖关系是一个好主意,它是一个了不起的包pipe理器。 您的情况很可能是该项目只使用node构build,并且node_modules文件夹仅包含与构build相关的依赖关系。