25_npm包管理工具.pdf

    为什么会有版本的标识符^~
    可以方便别人使用的时候,下载依赖包符合一定要求就可以,而不需要限制版本一模一样。所以别人运行项目所依赖的包和 package.json 中可能并不完全一致。
    而 package-lock.json 可以锁定一个确切的版本,限制别人使用这个包依赖版本必须完全一致。

    两个项目中都用到了同一个包,npm 并不会去仓库中下载两次这个包。而是第一次下载这个包的时候,下载的是这个包的安装包,并放在缓存中。另一个项目也要使用这个包的时候,就会直接从缓存中获取压缩包解压一份到项目中。省去了网络下载的过程。
    获取缓存文件夹:npm get cache

    npx 主要用于调用项目中某个模块的指令。
    因为命令行执行指令,优先查找本文件夹有没有该指令,而我们一般所在的文件夹是项目文件夹,项目中模块的真正命令在 node_module 文件夹中,所以当全局中也有这个模块的话,它其实会从全局环境变量中找到那些全局模块的命令来执行。
    而 npx 会优先从 node_module 文件夹找模块的命令。
    另外在 package.json script 属性中的脚本,脚本所执行的指令,也是会优先从 node_module 文件夹中查找。