Flutter 命令删除 .pub-cache 文件夹中的包
Posted
技术标签:
【中文标题】Flutter 命令删除 .pub-cache 文件夹中的包【英文标题】:Flutter command to delete packages in .pub-cache folder 【发布时间】:2020-02-06 21:02:12 【问题描述】:如何删除.pub-cache
文件夹中的flutter包?当我们给flutter clean
时,它会删除当前目录下的build文件夹。我们可以手动删除,但我的要求是使用命令删除.pub-cache
文件夹中的包。
【问题讨论】:
【参考方案1】:如果从 pubspec 中删除依赖项,然后运行 pub get
,它会从 .packages 文件中删除依赖项,从而使依赖项无法导入。
如果您的 pub 缓存中的某个包发生更改或损坏,您可以使用 flutter pub cache repair
命令对系统缓存中的所有托管和 git 包执行干净的重新安装。
【讨论】:
【参考方案2】:简答
删除pubspec.lock
文件,然后再次运行命令flutter pub get
。
长篇大论
命令flutter pub get
将重新生成pubspec.lock
。
如果您的代码没有被git
等源代码版本控制跟踪,请确保在删除之前从您的pubspec.lock
文件中获取备份副本,特别是如果项目有点旧并且您正在使用caret constraint
用于软件包依赖,而不是在 pubspec.ymal
中使用 concrete versions
如果应用答案后项目未编译,则可能是caret constraint
问题,因此您必须更新项目以匹配新库版本或在pubspec.ymal
中使用concrete versions
例如
dependencies:
path: 1.3.0
【讨论】:
这个文件应该被推送到源代码管理,如何删除它是一个好的解决方案? 命令flutter pub get
会重新生成那个文件,别担心
那么查这个文件到源代码管理的目的是什么?这样做没有任何意义。
在源代码控制中保留pubspec.lock
是可选的,但是;如果项目有点旧并且您使用 caret constraint
进行软件包依赖而不是在 pubspec.ymal
中使用 concrete versions
会很有帮助,这会导致其他开发人员在 pubspec.lock
中获得更新的版本,这可能会导致编译问题.
不客气,是的,你是对的;这就是为什么您可能需要保留原始pubspec.lock
的备份,然后再删除它,如果源代码版本控制没有跟踪它:D 我会将其添加为答案中的注释。【参考方案3】:
要清除全局 PUB_CACHE,运行:
dart pub cache clean
或
flutter pub cache clean
【讨论】:
此命令已添加到 Dart 2.14.0 github.com/dart-lang/sdk/blob/master/CHANGELOG.mdflutter pub cache clean
也有效
@ThongMTruong 是的,大多数 Dart 命令也适用于 Flutter 工具。
这个答案应该被标记为正确!【参考方案4】:
我花了超过 3 天的时间来尝试所有不同的方式。但最后我发现,你需要进入“pubspec.lock”文件。然后去图书馆并在那里更改版本。然后回到文件“pubspec.yaml”,运行Packages get,就成功了。
【讨论】:
【参考方案5】:打开文件资源管理器并删除主文件夹中的.pub-cache
目录非常简单。或者你可以使用普通的命令行命令:
rm -r ~/.pub-cache
下次跑
flutter pub get
这将重新下载您项目的 pubspec.lock 文件中指定的包。如果您还删除了 pubspec.lock,那么 flutter pub get
将根据您的 pubspeck.yaml 文件获取最新的非破坏性版本。
注意事项:
所有全局 Pub 包也存储在.pub-cache
文件夹中,因此您也必须在下次需要时重新安装它们。
根据您要执行的操作,您可能不需要删除.pub-cache
。这就是为什么没有针对它的特定命令的原因。我能想到的唯一原因是,如果您想通过删除不再使用的旧版本软件包来节省空间。
【讨论】:
【参考方案6】:只需转到终端并输入命令
flutter pub remove package_name
喜欢
flutter pub remove flutter_riverpod
【讨论】:
以上是关于Flutter 命令删除 .pub-cache 文件夹中的包的主要内容,如果未能解决你的问题,请参考以下文章