当前位置: 首页 > 知识库问答 >
问题:

如何从flutter中移除或识别未使用的包以减小项目的大小?

濮阳钟展
2023-03-14

我在flutter项目中使用了一些不再需要的包,即wilddog_authwilddog_sync,我可以从pubspec.yaml文件和dart文件中删除导入(也就是删除import'package:wilddog_sync/wilddog_sync.dart'等),并删除mainActivity.java和Xcode项目中的导入,但我不能清除flutter、cocoapod和Gradle安装的未使用的文件。现在flutter中是否有一个统一的命令,我可以立即移除所有未使用的包?

我很确定使用flutter clean只删除构建文件夹,使用flutter packages getpubspec.yaml删除包后,也不会从cocoapodgradle删除包。

例如,在flutter cleanflutter包获得之后,我重新构建了项目:

Launching lib/main.dart on Android SDK built for x86 64 in debug mode...
Initializing gradle...
Resolving dependencies...
Running 'gradlew assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
I/FlutterActivityDelegate(11331): onResume setting current activity to this
I/Choreographer(11331): Skipped 107 frames!  The application may be doing too much work on its main thread.
D/EGL_emulation(11331): eglMakeCurrent: 0x79f21b4dbec0: ver 2 0 (tinfo 0x79f219b4f160)
I/OpenGLRenderer(11331): Davey! duration=1903ms; Flags=1, IntendedVsync=7544454683637, Vsync=7546238016899, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=7546253803603, AnimationStart=7546253996603, PerformTraversalsStart=7546254171603, DrawStart=7546279222603, SyncQueued=7546288526603, SyncStart=7546295569603, IssueDrawCommandsStart=7546296644603, SwapBuffers=7546334455603, FrameCompleted=7546365204603, DequeueBufferDuration=2892000, QueueBufferDuration=199000, 
Syncing files to device Android SDK built for x86 64...
D/        (11331): HostConnection::get() New Host Connection established 0x79f219ab81e0, tid 11383
D/EGL_emulation(11331): eglMakeCurrent: 0x79f21b5e26e0: ver 2 0 (tinfo 0x79f219aa66c0)
W/IInputConnectionWrapper(11331): getCursorCapsMode on inactive InputConnection

但所有的包文件都留了下来。

当然,我可以进入./iOS/运行pods安装删除pods:

pod install
Analyzing dependencies
Fetching podspec for `Flutter` from `.symlinks/flutter/ios`
Removing Wilddog
Removing WilddogCore
Removing WilddogSync
Downloading dependencies
Using Flutter (1.0.0)
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.

[!] Automatically assigning platform `ios` with version `8.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.

共有1个答案

管和志
2023-03-14

删除flutter SDK目录中。pub-cache的宿主文件夹

cd path/to/flutter_sdk_directory

rm -rf .pub-cache/hosted

删除项目根目录中的.Packages文件

 cd path/to/project_root_directory

 rm -rf .packages

获取项目的包

cd path/to/project_root_directory

flutter pub get
 类似资料:
  • 我们的项目有大约10个SpingBoot模块,我们使用maven来管理依赖项。10罐大小约2克。最近,我们需要减少jar的大小,以方便我们的客户部署。 我有了一个想法,提取common jar(不经常更改),比如spring-.jar、spring-boot-.jar、jodd*.jar、elasticsearch等,只要>=2个项目使用一个相同的依赖关系,我们称之为“common jar”。 如

  • 我正在开发一个android对话框,我打算让它非常灵活地适应不同的手机分辨率。因此,我在构建xml文件时使用了layout_weight属性。 它应该是这样的: 我尝试将最后的Listviews高度更改为match_parent,这不会改变任何东西。当我单击这些项时,listview仍然会消失。

  • 本文向大家介绍使用webpack打包React项目,怎么减小生成的js大小?相关面试题,主要包含被问及使用webpack打包React项目,怎么减小生成的js大小?时的应答技巧和注意事项,需要的朋友参考一下 打包优化的问题解决思路: 代码压缩: 代码分组 , 网络传输压缩gzip: 抽取css代码: 组件动态加载:

  • 这里和这里都有类似的问题,但对JVM参数的更改都没有让我找到相同的解决方案。我只是想减少JVM未使用的堆大小,以便它更接近实际使用情况(将其释放给操作系统)。我一直在使用YourKit来分析内存使用情况,它通常如下所示: 我正在运行智能Ij IDEA社区版64位,在Windows 7 64位,8 GB RAM上运行。我已经编辑了.文件在这里找到: 与上述链接中提到的建议。第一个链接的答案实际上是错

  • 问题内容: 我正在开发一个 Java Web应用程序 ,其中包括 一个applet 。该小程序依赖于两个jar文件: JFreeChart(用于在客户端绘制图) -1.7 mb(jar文件的大小) MySqlJdbcConnector(用于将在客户端捕获的数据存储到远程数据库)-. 7 mb(JAR文件的大小) 现在,问题是上述两个jar文件的大小。我的小应用程序jar (myApplet.jar

  • 问题内容: 从我的java(ant)项目中删除未使用的jar的最简单方法是(tool?)。我们的项目已经变得非常庞大,我们希望进行清理。有几个jar添加到类路径中,但并非全部都用于编译/运行。有没有一种方法可以通过从命令行运行一些实用程序来识别不必要的jar? 注意 :我们不想遵循删除一个或多个jar的繁琐过程,然后编译/运行以测试是否需要这些jar。 问题答案: 这就是我最终做的事情,我在编译时