npm和cnpm安装依赖探究
as all we know,在使用node搭建的项目中,都会存在一个package.json文件。package.json中不光是记录着项目的一下基础信息,也包含着我们项目中的依赖包信息(包括开发环境的依赖包和生产环境的依赖包)。自npm 5.*.*之后,初次 使用npm i会自动生成一个package-lock.json的文件。与package.json不同的是,package-lock.json文件包含的内容会更加详细,包括项目直接依赖的包所依赖的其它依赖包的信息。
当我们的项目中存在node_modules文件的时候,使用npm i会先将package-lock.json中的版本信息号与本地已有的进行对比,然后安装lock文件中的指定版本。防止不同用户安装的依赖不同,导致可能出现的意外。(npm 5.1.*中允许package.json文件覆盖package-lock.json文件:It fixes #16866, allowing the package.json to trump the package-lock.json)防止用户修改了package.json文件但是实际安装的依赖还是按照package-lock.json中的版本。
但是,如果我们使用cnpm安装依赖,会如此吗?