npm模块的安装机制

简介: npm模块的安装机制

1. 前言

  1. 之前有篇文章package.json 和 package-lock.json区别
  2. 但好像对于 npm的模块机制,比如为什么输入 npm install 就可以自动安装对应的模块 还是挺好奇的,那就写写呗

2. 是什么 what

  1. npm 是 Node.js 的包管理工具,用于安装、管理和发布 JavaScript 包

3. 执行 npm install命令时的运行步骤

1. 解析依赖关系:

  1. npm 会读取项目根目录下的 package.json 文件,该文件描述了项目所依赖的模块以及版本范围。
  2. npm 解析 package.json 文件中的依赖关系,并确定需要安装的模块

2. 查询node_modules目录之中是否已经存在指定模块

  1. npm 向 registry 查询模块压缩包的网址

3. 下载模块

  1. npm 根据解析的依赖关系,从 npm 仓库默认为
    或其他配置的镜像源下载对应的模块。npm 会根据模块的名称和版本信息,下载相应的压缩包或源代码

4. 安装模块

  1. 下载压缩包,存放在根目录下的.npm目录里
  2. 解压压缩包到当前项目的node_modules目录,按照模块的层级结构进行组织。
  3. 执行模块的安装脚本(如果有定义),例如执行模块的 postinstall 脚本

  • 若存在,不再重新安装

5. 处理依赖关系:

  1. 如果安装的模块本身也有依赖其他模块,npm 会递归处理这些依赖关系,重复步骤 3/下载 和步骤 4/安装,直到所有的依赖模块都被安装
  • 总结

输入 npm install 命令会触发 npm 的自动安装机制,根据 package.json 文件中的依赖关系,下载对应的模块并安装到项目的 node_modules 目录下。这样,你就能在项目中直接引用这些模块,并使用其提供的功能



参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
6月前
|
JavaScript Windows
npm install安装太慢或者失败,可以尝试一下以下方法
npm install安装太慢或者失败,可以尝试一下以下方法
1623 1
|
6月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
448 1
|
3月前
|
缓存 资源调度 持续交付
在清空NPM缓存后,检查是否所有依赖都已正确安装
在清空NPM缓存后,检查是否所有依赖都已正确安装
|
5月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
329 3
|
1月前
|
资源调度 前端开发 JavaScript
React 安装(NPM)
10月更文挑战第6天
59 1
|
1月前
|
缓存 资源调度 持续交付
在清空NPM缓存后,我如何检查是否所有依赖都已正确安装?
【10月更文挑战第5天】在清空NPM缓存后,我如何检查是否所有依赖都已正确安装?
|
29天前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
388 0
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
|
3月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
缓存 资源调度 持续交付
在清空NPM缓存后,如何检查是否所有依赖都已正确安装
在清空NPM缓存后,如何检查是否所有依赖都已正确安装