购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 node_modules

运行npm install命令,npm会根据package.json中描述的依赖项安装对应的模块,并在当前的文件夹下生成node_modules文件夹,以非全局模式安装的所有第三方模块都会被放置在该文件夹中。

使用全局模式安装的模块位于Node预先定义的系统目录中,可以使用npm提供的命令查看。


// 查看全局模块的安装位置 
$ npm config get prefix 
C:\Users\likaiboy\AppData\Roaming\npm 

当在Node代码文件中使用require方法来引入第三方模块的时候,Node会在node_modules文件夹中查找对应的模块,每个模块也都有自己的package.json描述文件,Node会加载其main字段定义的主文件。

如果一名初次接触Node的开发者第一次打开node_modules文件夹,一定会震惊于里面的文件夹数量,而起源可能仅是执行了一个简单的npm install操作,如图2-2所示。

npm install命令会根据dependencies和devDependencies中的定义去安装对应的模块,而这些模块往往也依赖于别的模块,这样就形成了依赖的树形结构。npm会统计所有的依赖项,然后把它们统一放在node_modules目录下,这也是该目录下会有这么多陌生文件夹的原因。

为了避免每次都从远方仓库下载模块,npm会在安装模块的时候在本地缓存一份,这样下次下载的时候就可以直接从本地安装,如图2-3所示。


// 查看npm缓存目录 
npm config get cache 
 
// Linux/Mac OS输出 
/Users/likai/.npm 
 
// Windows输出 
C:\Users\likaiboy\AppData\Roaming\npm-cache 

图2-2 执行npm install express一共安装了50个模块

图2-3 Mac OS下的npm cache目录

大量的npm缓存会占用很大的系统空间,如果读者经常运行npm install操作,那么缓存文件夹可能会有几个GB的体积。可以运行npm cache clean -force命令清空所有的缓存。 sao2YdfcWhXCjH6G8TGH2gvFFnH8TELj5gHsvpy/a1QCyXabNsoys96CriEfckuB

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开