我是npm
的新手,但每当我在github上的任何基于节点的项目上运行npm install
时,无论package.json多么简单,它似乎都会认真地运行至少1分钟,并在控制台中滚动数百甚至数千行这样的行。。。
npm http 304 https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/isarray
npm http GET https://registry.npmjs.org/depd
npm http 304 https://registry.npmjs.org/depd
npm http GET https://registry.npmjs.org/xtend
npm http 304 https://registry.npmjs.org/xtend
npm http GET https://registry.npmjs.org/js-base64
npm http GET https://registry.npmjs.org/source-map
npm http 304 https://registry.npmjs.org/source-map
...
我认为这些一定是正在安装的模块的依赖项?如果是,是否为该项目在本地安装它们?有没有一种方法可以让这些依赖类型查找在我的机器上只存储一次,以节省空间并减少这个过程所需的时间?
回答您的问题:
-
是的,这些都是正在安装的依赖项。
-
除非将
-g
添加到命令行,否则模块将在本地安装(尽管添加此参数实际上应该只针对主要提供命令行工具的模块,这些命令行工具可以在shell提示符下执行)。 -
它们被缓存。当npm查询注册表时,它会使用特殊的头来询问注册表缓存的副本是否过期。输出中的
304
是模块查询请求的http状态代码。因此,这里的注册表告诉我们,这些模块并没有过时,可以使用本地缓存的副本。