🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Node组织了自身的核心模块,也使得第三方模块可以有序的编写和使用。但是在第三方模块中,模块与模块之间仍然是散列在各地的,相互之间不能直接引用。而在模块之外,包和NPM则是将模块联系在一起的一种机制。 在介绍NPM之前,不得不提起CommonJS的包规范。JavaScript不似Java或其它语言那样,具有模块和包结构。Node对模块规范的实现,一定程度上解决了变量依赖、依赖关系等代码组织性问题。包的出现,则是在模块的基础上进一步组织JavaScript代码。下图为包组织模块示意图: ![](https://box.kancloud.cn/2016-08-27_57c12dd6181c0.png) CommonJS的包规范定义其实也十分简单。它由包结构和包描述文件两个部分组成,前者用于组织包中的各种文件,后者则用于描述包的相关信息,以供外部读取分析。