什么是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理和运行这些任务的最常用工具称为grunt和gulp ,它们也通过npm安装。
部署应用程序时,您只分发生成的生成,而不是任何源文件或生成工具。
当然可以编写一个AngularJS应用程序,而不需要构build任何东西。
编辑评论:当你深入Angular的时候,还有更多先进的技术,即使在客户端应用程序中使用npm安装的库,然后有select地select你需要的,而不是整个50MB +的东西。 我build议留在基本方法,直到你很好地把握他们。
NPM是节点软件包pipe理器,它将软件包本地安装到项目中,特别是安装到node_modules
文件夹中。 从那里的包代码可以包含到一个项目中,是的, jar头是那里的重要词汇。
浏览器没有办法在代码中包含模块,所以你需要使用一个可以暴露节点的commonJS风格模块的库。 Browserify和Webpack是这样做的两种stream行的方法。
Angular通过引入自己的模块系统来复杂化这个模块系统,这个模块系统更接近于AMD风格的模块。 有办法解决这个问题,所以你可以使用节点式的模块,也许你的项目使用这些。
使用npm
pipe理依赖关系是一个好主意,它是一个了不起的包pipe理器。 您的情况很可能是该项目只使用node
构build,并且node_modules
文件夹仅包含与构build相关的依赖关系。