在npm init
我可以使用以下方法在package.json中添加依赖项之后:
npm install package --save
并说,我要uninstall
包装,我这样做是:
npm uninstall package
但我也希望相应地更新package.json,而不必手动转到文件并删除该行。
从npm文档说:
严格来说,它是可加的,因此在没有充分理由的情况下,它不会从package.json中删除选项。
所以,我只是想知道这是否有可能。
在npm init
我可以使用以下方法在package.json中添加依赖项之后:
npm install package --save
并说,我要uninstall
包装,我这样做是:
npm uninstall package
但我也希望相应地更新package.json,而不必手动转到文件并删除该行。
从npm文档说:
严格来说,它是可加的,因此在没有充分理由的情况下,它不会从package.json中删除选项。
所以,我只是想知道这是否有可能。
Answers:
使用相同的--save
标志。如果您通过以下方式安装了依赖项:
$> npm install grunt-cli --save
您可以使用以下命令通过package.json更新来卸载它:
$> npm uninstall grunt-cli --save
'save'标志告诉npm根据您刚刚执行的操作更新package.json。
--save-dev
而不是--save
。
dependencies
package.json文件的部分中,而--save-dev将保存到该devDependencies
部分中
npm i <package_name> -S
添加到dependencies
列表中或npm i <package_name> -D
添加到中dev-dependencies
。相同的标志适用于使用npm rm <package_name> -S
或npm rm <package_name> -D
npm help
所有标志及其速记等效项,请参见。(安装有-S或--save的任何东西,也可以使用其中之一进行卸载,npm不会将它们视为不同。只是-S的“较少键入”)
在我的情况下--save并未清除package.json中的条目,这是ionic-check所建议的命令,我认为如果卸载由于任何错误而退出,则package.json不会被更新,在这种情况下,您只有一个选择手动更改package.json,这很繁琐,但我猜是唯一的方法
更新
当您卸载依赖于其他处于活动状态的软件包的软件包时,这种情况下的卸载可能会因错误/警告而失败,安全的方法是通过以下依赖关系图不确定是否有可用的工具,在这种操作下使用方便的工具,警告尽管“您必须安装对等依赖项。”这条消息是相当令人误解的,但在卸载软件包时却没有任何意义
dependencies
列表中有此内容,uninstall --save
则应将其删除,而不管是否有其他内容依赖于此。NPM使用了相当巧妙的依赖关系平整功能,因此,如果(明确地)在依赖关系列表中包含X并卸载X --save,它将被删除。但是,请记住,有多个相关性列表,并且--save
是不一样的--save-dev
,--save-prod
或者--save-optional
。也可以:如果uninstall
导致错误,NPM会在该错误处停止。它不会尝试继续,因为它不能再保证正确性。