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
會報錯。