Cabal能否在依赖中警告未使用的软件包?

24

如何获取给定 Cabal 项目中未使用的依赖包?

cabal install 过程中,如果项目依赖中提到的某个包没有使用,有没有一种方法可以获得类似警告的提示,以便将其从依赖项中删除?


1
我认为 cabal 目前还没有准备好。这肯定是一个有用的功能。 - Daniel Fischer
3
现在它还是一个工程上的挑战,虽然很有用。它涉及到 cabal 所知道的内容(列在 .cabal 文件中的包),以及 GHC 所知道的内容(使用了哪些包),这两者之间的界限。也许将其作为单独的实用程序添加进去不会太坏,但将其默认包含在 cabal install 中可能并不切实际。 - Carl
如果你有一个关于https://dev59.com/qW_Xa4cB1Zd3GeqPyTA4的答案,那么其余的部分相对来说会比较简单... - Ben Millwood
4个回答

8

8

有一些选项:

不幸的是,GHC 8.8 被排除在外。

P. S. 最近发布了一个名为 prune-juice 的程序,应该也适用于 GHC 8.8。


2

cabal-progdeps 是一个在构建 cabal 项目之后列出其依赖项的工具。

你可以通过将未使用的依赖项添加到项目中来检查它们是否都被使用。

它需要与 cabal-install 使用的相同版本的 Cabal 库,否则会出现解析 dist/setup-config 时的错误。


很抱歉,我已经检查了 cabal-progdeps 并且它列出了 .cabal 项目文件中的所有依赖项,无论是否被使用,因此它不是一个好工具来查找未使用的依赖项。 - Gabriel Riba
是的,这一点也没有帮助 :[ - ДМИТРИЙ МАЛИКОВ
顺便说一下,cabal-progdeps包有点过时,因为它对filepathdirectory设置了上限。 - ДМИТРИЙ МАЛИКОВ
@ДМИТРИЙ МАЛИКОВ 你总是可以手动完成。从一个工作项目的 cabal 文件中,注释掉一个怀疑未使用的依赖项,然后尝试进行 cabal 配置和构建。 - Gabriel Riba
是的,问题是关于这个流程自动化的。 - ДМИТРИЙ МАЛИКОВ

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接