pub.dev 常用包 vs npm 生态对照

pub.dev 常用包 vs npm 生态对照

Flutter 的 pub.dev 等价于 npm,pubspec.yaml 等价于 package.json


一、包管理命令对照

npm / yarn Flutter 说明
npm install flutter pub get 安装所有依赖
npm install axios flutter pub add dio 添加单个包
npm uninstall axios flutter pub remove dio 移除包
npm update flutter pub upgrade 升级所有包
npm outdated flutter pub outdated 查看过期包
package.json pubspec.yaml 依赖配置文件
package-lock.json pubspec.lock 锁定版本文件
node_modules/ .pub-cache/ 本地缓存目录
npm run build flutter build apk / ios / web 构建
npm start flutter run 开发运行
npx dart run 执行 Dart 脚本

二、网络请求

npm 包 pub.dev 包 说明
axios dio HTTP 客户端,拦截器、取消请求、上传进度
fetch(原生) http 官方轻量 HTTP 包
socket.io-client web_socket_channel WebSocket
graphql graphql_flutter GraphQL 客户端
yaml 复制代码
dependencies:
  dio: ^5.4.0
  http: ^1.2.0
  web_socket_channel: ^2.4.0

三、状态管理

npm 包 pub.dev 包 说明
React Context(内置) provider 官方推荐,基于 InheritedWidget
zustand riverpod 现代状态管理,类型安全
redux flutter_bloc Redux 思想,Bloc 模式
mobx mobx + flutter_mobx 响应式状态管理
jotai riverpod(atom) 原子化状态
valtio get GetX,简单轻量
yaml 复制代码
dependencies:
  provider: ^6.1.0         # React Context 等价
  flutter_riverpod: ^2.5.0  # Zustand 等价(推荐)
  flutter_bloc: ^8.1.0      # Redux 等价

四、路由导航

npm 包 pub.dev 包 说明
react-router-dom go_router 声明式路由(官方推荐)
react-router-dom(v5) auto_route 代码生成路由
Navigator 1.0 内置 Navigator 命令式路由(无需额外包)
yaml 复制代码
dependencies:
  go_router: ^13.0.0

五、UI 组件库

npm 包 pub.dev 包 说明
antd / MUI Flutter 内置 Material 官方 Material Design
antd / MUI flutter_cupertino iOS 风格组件(内置)
第三方 UI 库 flutter_ui_kit 社区 UI 组件
图表:recharts fl_chart 折线图、柱状图、饼图
图表:echarts syncfusion_flutter_charts 功能更全的图表库
轮播:swiper carousel_slider 图片轮播
瀑布流:自定义 flutter_staggered_grid_view 瀑布流/不等高网格
下拉刷新 pull_to_refresh 下拉刷新 + 上拉加载
骨架屏 shimmer Loading 骨架屏效果
yaml 复制代码
dependencies:
  fl_chart: ^0.66.0
  carousel_slider: ^4.2.1
  flutter_staggered_grid_view: ^0.7.0
  shimmer: ^3.0.0

六、本地存储

npm 包 pub.dev 包 说明
localStorage shared_preferences K-V 存储,等价于 localStorage
IndexedDB / localforage hive 轻量高性能本地数据库
sqlite sqflite SQLite 数据库
cookies flutter_secure_storage 安全存储(加密,存 Token)
redux-persist hydrated_bloc 状态持久化
yaml 复制代码
dependencies:
  shared_preferences: ^2.2.0    # localStorage 等价
  flutter_secure_storage: ^9.0.0 # 安全存储 Token
  hive: ^2.2.3                   # 本地数据库
  hive_flutter: ^1.1.0
  sqflite: ^2.3.0                # SQLite

七、图片处理

npm 包 pub.dev 包 说明
react-lazyload cached_network_image 网络图片缓存 + 占位符
react-dropzone image_picker 选择图片/相机拍照
compressorjs flutter_image_compress 图片压缩
SVG(内置) flutter_svg SVG 图片支持
lottie-react lottie Lottie 动画
yaml 复制代码
dependencies:
  cached_network_image: ^3.3.0
  image_picker: ^1.0.0
  flutter_svg: ^2.0.0
  lottie: ^3.0.0

八、工具类

npm 包 pub.dev 包 说明
dayjs / date-fns intl 日期格式化
uuid uuid 生成 UUID
lodash Dart 内置(collection 包) 数组/对象工具
classnames 无(直接条件判断) -
crypto-js crypto 加密(Dart 内置)
js-cookie flutter_secure_storage Cookie / Token 存储
i18next flutter_localizations + intl 国际化 i18n
react-i18next easy_localization i18n(更易用)
@sentry/react sentry_flutter 错误监控
react-query flutter_query / riverpod 服务端状态管理
yaml 复制代码
dependencies:
  intl: ^0.19.0
  uuid: ^4.3.0
  easy_localization: ^3.0.0
  sentry_flutter: ^7.0.0

flutter:
  generate: true   # 开启 i18n 代码生成

九、权限与设备

场景 pub.dev 包 说明
权限请求(相机/位置/通知) permission_handler 统一权限管理
获取 GPS 位置 geolocator 地理位置
设备信息 device_info_plus 设备型号、系统版本
网络状态 connectivity_plus 检测网络连接
本地通知 flutter_local_notifications 本地推送
分享 share_plus 系统分享
打开链接 url_launcher 打开浏览器/拨号
剪贴板 内置 Clipboard 复制粘贴
yaml 复制代码
dependencies:
  permission_handler: ^11.0.0
  geolocator: ^11.0.0
  connectivity_plus: ^6.0.0
  url_launcher: ^6.2.0
  share_plus: ^7.2.0

十、开发工具(devDependencies)

npm 包 pub.dev 包 说明
eslint flutter_lints 代码规范检查
prettier dart format(内置) 代码格式化
jest flutter_test(内置) 单元测试
@testing-library/react flutter_test(内置) Widget 测试
husky - Git hooks(需手动配置)
json-server json_serializable JSON 模型代码生成
typescript Dart(强类型内置) 类型系统(无需额外安装)
yaml 复制代码
dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^5.0.0
  json_serializable: ^6.7.0   # fromJson/toJson 代码自动生成
  build_runner: ^2.4.0        # 代码生成工具

十一、pubspec.yaml 完整示例

yaml 复制代码
name: my_app
description: My Flutter App
version: 1.0.0+1

environment:
  sdk: ^3.0.0

dependencies:
  flutter:
    sdk: flutter

  # 网络
  dio: ^5.4.0
  cached_network_image: ^3.3.0

  # 状态管理
  provider: ^6.1.0

  # 路由
  go_router: ^13.0.0

  # 存储
  shared_preferences: ^2.2.0
  flutter_secure_storage: ^9.0.0

  # 工具
  intl: ^0.19.0
  uuid: ^4.3.0

  # UI
  fl_chart: ^0.66.0
  lottie: ^3.0.0
  flutter_svg: ^2.0.0

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^5.0.0
  build_runner: ^2.4.0
  json_serializable: ^6.7.0

flutter:
  uses-material-design: true
  assets:
    - assets/images/
    - assets/animations/
  fonts:
    - family: PingFang
      fonts:
        - asset: assets/fonts/PingFang.ttf

十二、版本约束规则

yaml 复制代码
# 等价于 npm 的 semver
dio: ^5.4.0   # ^:兼容版本(5.x.x),等价于 npm ^
dio: ~5.4.0   # ~:补丁版本(5.4.x),等价于 npm ~
dio: 5.4.0    # 精确版本,等价于 npm 5.4.0
dio: ">=5.0.0 <6.0.0"  # 范围
dio: any      # 任意版本(不推荐)
相关推荐
itmigrate7 小时前
前端项目里,Object.is 并不是 === 的平替
前端
小大宇8 小时前
Vue知识点6-computed计算属性
前端·javascript·vue.js
程序员海军8 小时前
尤雨溪 : Vue 4 已经在规划中了!
前端·javascript·vue.js
2601_949970698 小时前
HumanizeDuration 跨端三方库仓颉适配全流程
前端·javascript·flutter
风骏时光牛马10 小时前
后端服务接口开发与性能优化
前端
kyriewen10 小时前
我让 4 个 AI 互相 review 代码,最温柔的那个下手最狠
前端·程序员·ai编程
计算机魔术师11 小时前
493家公司白砸AI钱?Apollo这组数据戳破了幻觉
前端
IT_陈寒11 小时前
Java静态变量初始化坑得我头皮发麻
前端·人工智能·后端
柳杉11 小时前
用 Codex 完成智慧高速 3D 可视化大屏,从 18 张行业设计稿到可交互的运行监测中心
前端·ai编程·数据可视化
review4454311 小时前
拿到 codex 第一步
前端·agent·vibecoding