关于npm registry
npm registry是一个JavaScript包的数据库,每一个包包含代码和元数据。开发者可以将他们下载下来并使用。
关于package和modules
npm registry包含package,其中也有很多是modules,或者包含modules
packages介绍
package是一个由package.json文件描述的文件或者文件夹。一个package必须包含package.json文件才能发布到npm registry中。
package格式
以下任何一种都可以定义为package:
- a)包含由
package.json
文件描述的程序的文件夹 - b)一个由(a)打包后的压缩包
- c)一个指向(b)的URL
- d)一个代表在registry发布过的(c)的
<name>@<version>
- e)一个代表指向(d)的
<name>@<tag>
- f)一个代表代表(e)最后tag的
<name>
- g)拉取后结果为(a)项目的
git
url
modules介绍
module是任何可以被Node.jsrequire()
方法加载的在node_modules
中的文件或者文件夹
如果希望被Node.jsrequire()
方法加载的话,一个module必须符合以下任一条件:
- 一个
package.json
中包含main
字段的文件夹 - 一个JavaScript文件
**Note:**由于modules不是必须有package.json
文件,所以不是所有module都是package。只有有package.json
文件的module才是package。