前言
node项目里会引用诸多包,在代码运行的时候,查找过程究竟是怎样的呢?
简而言之,就是:
1,现在当前目录下的node_modules里面找
2,找到就用,找不到的话,就会到上一级目录的node_modules里面找
3,继续2的过程,一直找到跟目录,还找不到,则报错。
一、查找当前目录
在C:\nodeTest\test1\01.node>下面有node_modules目录,且里面有math包,为了验证,我把math.js的add方法加了个console。
然后在C:\nodeTest\test1\01.node下写代码,并运行:找到了。
二、查找上一级目录下的math
1.先拷贝node_modules到上一级目录,然后删掉当前目录下的math包
注意通过npm r math --save来删除。
2.再次运行一下代码
注意先把代码里的console改一下:
再跑:找到了吧。
三、用途
再往上就不再一一实验了啊。
说一下这个东西的用途。
假如我们有好多项目,比如像下面这样,有俩项目,test1和test2,
然后只要我在这儿放一个node_modules,那么里面的东西是不是都能找到啊,可以共用了,没必要每个项目都放这个文件夹,
另外,这个文件夹一般来说都会很大,占磁盘空间,每次下载也占带宽吧。