cnpm,npm,yarn安装及删除包的区别
1、cnpm
以安装dayjs
为例
cnpm i dayjs
命令运行完成之后package.json
文件无变化,不生成package-lock.json
文件,node_modules
下新增dayjs
文件。
cnpm uninstall dayjs
命令运行完成之后若原本package.json
文件中有dayjs
依赖则会被删除掉,无则没变化,生成package-lock.json
文件,node_modules
下删除dayjs
文件。package.json
中不存在的依赖会被删除,存在的依赖会执行更新。
cnpm i dayjs -S
命令运行完成之后package.json
文件的dependencies
下新增dayjs
依赖,不生成package-lock.json
文件,node_modules
下新增dayjs
文件。
cnpm i dayjs -D
命令运行完成之后package.json
文件的devDependencies
下新增dayjs
依赖,不生成package-lock.json
文件,node_modules
下新增dayjs
文件。
2、npm
npm i dayjs
命令运行完成之后package.json
文件的dependencies
下新增dayjs
依赖,生成package-lock.json
文件,node_modules
下新增dayjs
文件。
npm i dayjs -S
与上述命令作用相同
npm i dayjs -D
命令运行完成之后package.json
文件的devdependencies
下新增dayjs
依赖,生成package-lock.json
文件,node_modules
下新增dayjs
文件。
npm uninstall dayjs
命令运行完成之后删除package.json
文件的dependencies
或者devdependencies
下的dayjs
依赖,去掉package-lock.json
文件中的dayjs
,删除node_modules
下dayjs
文件。使用cnpm
不带参数安装的依赖都会被删除,其它依赖进行更新。
3、yarn
yarn add dayjs
命令运行完成之后package.json
文件的dependencies
下新增dayjs
依赖,生成yarn.lock
文件,node_modules
下新增dayjs
文件。
yarn add dayjs -D
命令运行完成之后package.json
文件的devdependencies
下新增dayjs
依赖,生成yarn.lock
文件,node_modules
下新增dayjs
文件。
yarn remove dayjs
命令运行完成之后删除package.json
文件的dependencies
或者devdependencies
下的dayjs
依赖,若文件中无此依赖,则会报错,去掉yarn.lock
文件中的dayjs
,删除node_modules
下dayjs
文件。使用cnpm
不带参数安装的依赖都会被删除,其它依赖进行更新。
4、总结
npm
和yarn
安装时,都会生成相应的lock
文件,修改时仅能修改各自的lock
文件。cnpm
无lock
文件。npm
和yarn
安装时,不携带参数与携带-S
作用相同,依赖会被放到package.json
的dependencies
下,cnpm
不携带参数安装时,package.json
文件无改动,仅node_modules
下会增加依赖包。- 执行删除命令时,三者均会删除
node_modules
下的依赖包,package.json
中不存在的依赖包会删除,存在的依赖包则会更新。若删除package.json
下不存在的依赖包时,使用yarn
会报错。