总所周知npm是包管理工具可以安装别的写好的模块,但是npm i 的时候发生了什么?为什么会出现package-lock.json文件呢? package-lock.json 文件的作用又是什么?npm run script发生了什么?好滴好滴带着我们的疑问开始探索吧!!~~~
npm i 的时候发生了什么?
npm install用来安装模块到node_module目录汇中,安装之前,会先检查node_module目录汇中是否已经存在指定的模块,如果存在,就不再进行安装即使远程仓库有了最新版。如果想重新都安装一遍可以用-f or -force。
安装进程:
① 发出npm install指令
② npm 向registry查询模块压缩包地址,并生成package-lock.json文件。
③ 下载压缩包,放在~/.npm目录
④ 解压压缩包到当前项目的node_modules目录
当有package-lock.json时,执行npm install 时,为保证各成员依赖的版本是一致的,确定唯一的node_modules树。node从package.json中拿到模块名称,从package-lock.json拿到版本号 (文件锁定版本号,包括主模块和子依赖)。因此这样就保证了不会自动更新最新版。
npm run script的时候发生了什么?
首先我们要知道一个现象:直接运行script对应的指令是报错的,操作系统中不存在这个指令。那为什么运行这个script就可以运行s