Node.js 使用npm卸载时自动从package.json中删除依赖项

Node.js 使用npm卸载时自动从package.json中删除依赖项,node.js,npm,Node.js,Npm,在npm init之后,我可以使用以下方法在我的package.json中添加依赖项: npm install package --save 比如说,我想卸载该软件包,我通过执行以下操作: npm uninstall package 但是我希望我的package.json也能相应地更新,而无需手动转到该文件并删除该行 从npm文件中可以看出: 它严格来说是可添加的,因此它不会在没有充分理由的情况下从package.json中删除选项 所以,我只是想知道这是否可能 使用相同的--保存标志。如果

npm init
之后,我可以使用以下方法在我的package.json中添加依赖项:

npm install package --save
比如说,我想
卸载该软件包,我通过执行以下操作:

npm uninstall package
但是我希望我的package.json也能相应地更新,而无需手动转到该文件并删除该行

从npm文件中可以看出:

它严格来说是可添加的,因此它不会在没有充分理由的情况下从package.json中删除选项

所以,我只是想知道这是否可能

使用相同的
--保存
标志。如果安装了具有以下内容的依赖项:

$> npm install grunt-cli --save
您可以使用以下方法卸载它,并更新package.json:

$> npm uninstall grunt-cli --save
“save”标志告诉npm根据您刚才让它执行的操作更新package.json。

在我的例子中--save没有清除package.json中的条目,爱奥尼亚检查所建议的命令我认为,如果卸载过程中出现任何错误,package.json将不会更新,在这种情况下,您只能选择手动更改package.json,这很乏味,但我猜这是唯一的方法

更新


当您卸载一个依赖于另一个处于活动状态的软件包时,在何种情况下卸载可能会失败并出现错误/警告,安全的方法是通过以下依赖关系图不确定是否有可用的工具,这是此类操作下的一个方便工具,但警告消息会产生误导“您必须安装对等依赖项…”在卸载软件包时没有任何意义,因为每当我使用(--save)安装时,我的依赖项会自动添加到package.json上flag,我想知道是否有一种方法可以在每次卸载包时从package.json中删除依赖项。我在ember cli中使用npm,我必须使用
--save dev
而不是
--save
。如果使用--save dev安装它,那么卸载也是--save dev,因为--save save into the
依赖项
而--save dev将保存到
devDependencies
部分我已经发布了这个问题,这里有一个小技巧。你可以使用
npm i-s
添加到你的
依赖项列表中,或者
npm i-D
添加到你的
dev依赖项中使用
npm rm-S
npm rm-D
删除,但请注意,这些只是--save和--save-dev的简写标志等价物。请参阅
npm help
了解所有标志及其简写标志等价物。(使用-S或--save安装的任何东西,也可以使用这两种方式卸载,npm并不认为它们有所不同。只是“少输入“for-S)你是男人中的圣人。这应该是不必要的:如果它在
依赖项列表中,那么
卸载--save
应该删除它,不管其他东西是否依赖它。NPM使用相当聪明的依赖项展平,因此如果依赖项列表中有X(明确地)卸载X--save,它将被删除。但是,请记住,存在多个依赖项列表,
--save
--save dev
--save prod
--save optional
不同。另外,是的:如果
卸载
导致错误,NPM将在该错误处停止。它不会尝试继续因为它不能再保证正确性了。