Tar*_*ion 387 uninstall node.js npm
有没有办法简单地从Node.js项目中卸载所有未使用的(未声明的)依赖项(我不再定义的那些package.json
).当我更新我的应用程序时,我喜欢自动删除未引用的包.
Dar*_*ogg 642
运行npm prune
以取消未列出的模块package.json
.
来自npm help prune
:
此命令删除"无关"包.如果提供了包名称,则仅删除与提供的名称之一匹配的包.
无关的包是父包的依赖项列表中未列出的包.
如果
--production
指定了该标志,则此命令将删除devDependencies中指定的包.
Pyr*_*rce 286
如果你不担心一两分钟的时间这样做,一个解决办法是rm -rf node_modules
和npm install
再次来重建本地模块.
Igo*_*ich 10
npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
Run Code Online (Sandbox Code Playgroud)
此命令删除"无关"包.如果提供了包名称,则仅删除与提供的名称之一匹配的包.
无关的包是父包的依赖项列表中未列出的包.
如果指定了--production标志或将NODE_ENV环境变量设置为production,则此命令将删除devDependencies中指定的包.设置--no-production将否定NODE_ENV被设置为生产.
如果使用--dry-run标志,则实际上不会进行任何更改.
如果使用了--json标志,那么修改后的npm修剪(或者将使用--dry-run进行的修改)将作为JSON对象打印.
在启用了包锁的正常操作中,在安装模块时会自动修剪无关模块,并且您只需要使用带有--production标志的命令.
如果你已经禁用了包锁,那么无法删除无关的模块,你可以不时地运行npm prune来删除它们.
npm dedupe
npm ddp
Run Code Online (Sandbox Code Playgroud)
搜索本地包树并尝试通过将依赖关系进一步向上移动到树中来尝试简化整体结构,从而可以更有效地共享多个依赖包.
例如,考虑这个依赖图:
a
+-- b <-- depends on c@1.0.x
| `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
`-- c@1.0.10
Run Code Online (Sandbox Code Playgroud)
在这种情况下,npm-dedupe会将树转换为:
a
+-- b
+-- d
`-- c@1.0.10
Run Code Online (Sandbox Code Playgroud)
由于节点模块查找的分层特性,b和d都将通过树的根级别的单个c包来满足它们的依赖性.
重复数据删除算法遍历树,尽可能地将每个依赖项移动到树中尽可能远,即使找不到重复项.这将导致平面和重复数据删除树.
小智 9
您可以运行npx depcheck
以获取项目中未使用的依赖项和 devDependency 的列表。
然后你可以运行npm uninstall pkg1 pkg2
等等来删除依赖关系。
或者,您也可以从package.json中删除依赖项,并在删除node_modules和package-lock.json后重新安装包
归档时间: |
|
查看次数: |
157378 次 |
最近记录: |