nodejs的依赖 打包

nodejs中package.json中的依赖项存在于每个项目自己的node_modules文件夹,而不能在多个项目之间共用一套node_modules(像Java中的Maven一样)

依赖管理是每个现代语言的标配,依赖管理和打包工具是两个概念,npm是依赖管理,webpack是打包工具。(在Java中Maven既能实现依赖管理又能实现打包。)

何为依赖管理?

依赖管理说白了就是构建一个有向无环图,项目A依赖项目B,项目B依赖项目C,那么当你的项目依赖A的时候,依赖管理工具会自动让你的项目依赖B和C, 要想构建有向无环图,最关键的是要将项目转化为有向无环图中的节点。所以对于项目往往有desciption,作者信息、版本信息等额外信息。依赖管理最难解决的问题就是版本问题,库A依赖库B,库C也依赖库B,但是库A跟库C所依赖的库B不是同一版本,如果库B的两个版本兼容还好,如果不兼容就坑大发了,这是无解的问题。