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