[Flutter]配置pubspec.yaml

pubspec.yaml 文件是 Dart 和 Flutter 项目的核心配置文件,用于管理项目的依赖、版本、元数据等。

下面是 pubspec.yaml 文件中常见项的示例和说明:

name: my_private_package
#version: 0.0.1 # 开发一个Dart包或Flutter库,用于其他项目引用,只需要关注版本
version: 1.0.1+10 # 开发一个Flutter应用,并计划将其发布到应用商店,建议使用 1.0.1+10 格式来增加构建号。
description: A new Flutter package for private use.
homepage: https://example.com

#repository: https://github.com/yourusername/my_private_package
#issue_tracker: https://github.com/yourusername/my_private_package/issues
#documentation: https://yourusername.github.io/my_private_package/

environment:
  sdk: '>=2.12.0 <3.0.0'
  flutter: '>=1.20.0'

dependencies:
  flutter:
    sdk: flutter
  #http 表示项目依赖于 http 包,版本至少为 0.13.3 但低于下一个主版本。
  http: ^0.13.3

dev_dependencies:
  #flutter_test,这是用于 Flutter 测试的依赖,通常只在开发过程中使用。
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true
  assets:
    - images/a_dot_burr.jpeg
    - images/a_dot_ham.jpeg

  fonts:
    - family: Schyler
      fonts:
        - asset: fonts/Schyler-Regular.ttf
        - asset: fonts/Schyler-Italic.ttf
          style: italic

1.基本配置

  • name: 包的名称,这是你的包在 Dart ecosystem 中的唯一标识符。
  • version: 包的版本号,遵循语义化版本规则。

    对于 Flutter 应用,通常在发布到应用商店时,会包括构建号(build number),这有助于追踪和管理不同的构建,尤其是当你需要频繁更新应用且保持相同的版本号时。这种情况下,version: 1.0.1+12 是很常见的配置方式。

    对于开发的 Dart 包或 Flutter 库,通常只需要关注到 MAJOR.MINOR.PATCH,因为包的发布更侧重于 API 的改动和功能更新,而不是构建的具体次数。因此,包通常只配置为 version: 1.0.1。在包管理平台(如 pub.dev)上,构建号的概念并不适用,因为每次发布都是围绕功能和修复的变化。

  • description: 包的简短描述,帮助用户了解包的用途。
  • homepage: 包的主页 URL,通常是项目的仓库或者文档的链接。
  • repository: 项目的仓库地址,常用于指定 GitHub/GitLab/Bitbucket 等的直接链接。
  • issue_tracker: 问题跟踪系统的链接,通常指向 GitHub Issues 页面。
  • documentation: 包的文档页面 URL。

2.环境设置

  • environment: 指定包需要的 Dart 和 Flutter SDK 的版本。
    • sdk: Dart SDK 的版本范围。
    • flutter: Flutter SDK 的版本范围。

(1).查询 Dart SDK 版本

官方:

语言演变:Language evolution | Dart

Dart 官网:Dart programming language | Dart

Dart 的源代码 GitHub:GitHub - dart-lang/sdk: The Dart SDK, including the VM, dart2js, core libraries, and more.

Dart 包管理器的官方网站:  The official repository for Dart and Flutter packages.

本地:

要查看你当前安装的 Dart SDK 版本,可以在命令行中运行以下命令:

$ dart --version

(2).查询 Flutter SDK 版本

官方:

Flutter 官网: Flutter - Build apps for any screen

Flutter 源码仓库: GitHub - flutter/flutter: Flutter makes it easy and fast to build beautiful apps for mobile and beyond

Flutter 版本:

Releases · flutter/flutter · GitHub

Archive | Flutter

本地:

要查看你当前安装的 Flutter SDK 版本,可以在命令行中运行以下命令:

$ flutter --version

或者使用更简洁的信息输出:

$ flutter doctor

flutter doctor 命令不仅显示 Flutter SDK 的版本,还会检查你的环境配置是否适合 Flutter 应用开发,包括 Android 和 iOS 的工具链等信息。

3.依赖管理

  • dependencies: 包依赖的其他包和版本。
    • 可以指定版本号,版本范围,或者使用特定的版本控制系统的链接(如 Git)。
  • dev_dependencies: 仅在开发过程中需要的依赖,这些依赖不会在最终的产品中被包含。
  • dependency_overrides: 用于临时重写依赖版本,常用于解决依赖冲突。

依赖版本查询:The official repository for Dart and Flutter packages.

(1).精确版本

指定一个包的精确版本号,确保总是使用这个特定的版本。

dependencies:
  http: 1.2.1

 这种方式告诉 pub 包管理器,你想使用 http 包的 1.2.1 版本,不高于也不低于这个版本。

(2).范围约束

使用版本范围来指定可以接受的最低版本和最高版本。

dependencies:
  http: '>=0.12.0 <0.14.0'

 这表示 http 包可以是任何 0.12.0 到 0.14.0(不包括 0.14.0)之间的版本。这种方式允许某个范围内的版本更新,有助于获取包的最新修复,同时避免引入重大变更。

(3).Caret 符号 (^)

Caret 约束允许更新到当前主版本号内的最新版本。

dependencies:
  http: ^0.13.3

这意味着可以使用 0.13.3 及以上版本,但是必须低于 0.14.0。此约束允许非破坏性的更新(通常是小修小改和补丁),这是最常用的版本约束方式,因为它能提供一定级别的灵活性和安全性。

(4).任意版本

如果不指定版本号,或者使用星号 (*),表示接受任何版本的包。

dependencies:
  http: any

或者

dependencies:
  http: '*'

这将匹配任何可用的版本。这种方式在实际开发中并不推荐,因为它可能导致未知的兼容性问题。

(5).Git 依赖

可以直接从 Git 仓库中引入依赖,这在使用尚未发布的包或者需要特定提交的版本时非常有用。

dependencies:
  http:
    git:
      url: https://github.com/flutter/http.git
      ref: main

 你可以通过 ref 指定分支名、标签或者提交的 SHA。如果省略 ref,默认将使用主分支。

(6).本地路径依赖

如果你正在本地开发一个包,或者需要对某个包进行调试,你可以通过指定路径来依赖本地的包。

dependencies:
  local_package:
    path: ../path/to/local_package

这种方法允许你直接依赖本地文件系统中的包,非常适合本地开发和测试。

4.Flutter 特定配置

  • flutter:
    • uses-material-design: 如果为 true,则包括 Material Design 相关的资源,例如图标等。
    • assets: 列出应包含在应用中的资源文件。
    • fonts: 定义应用要使用的字体,包括字体文件和权重。

在Flutter中,uses-material-design: true 配置项在 pubspec.yaml 文件中的作用是允许项目使用Material Design库中的图标资源。这是因为Material Design图标不是自动包含在Flutter应用中的,而是需要通过此配置项来显式启用。

如果不配置 uses-material-design: true

  • Material Design图标:你将无法直接使用Material Design图标。如果你尝试使用 Icons 类来引用图标,将会得到一个占位符图标或者没有任何图标显示。
  • Material Design组件:你仍然可以使用Material Design的组件,如 ScaffoldAppBarFlatButtonTextButton 等。这些组件不依赖于 uses-material-design: true 配置项,因为它们是Flutter框架的一部分,而不是资源文件。

这里assets/fonts详细用法可参考另一文:Flutter使用flutter_gen管理资源文件-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/608732.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十四五”智慧城市:视频大数据汇聚系统2.0建设方案与特点分析

一、背景需求分析 随着科技的不断发展&#xff0c;智慧城市的建设已经成为城市发展的重要方向。视频汇聚系统作为智慧城市建设的重要组成部分&#xff0c;已经得到了广泛的应用和推广。视频汇聚系统是智慧城市中非常重要的组成部分&#xff0c;它利用摄像头和传感器技术来收集…

React使用Outlet实现路由跳转时局部刷新页面

Outlet是react-router-dom插件的一个组件&#xff0c;首先需要安装react-router-dom插件&#xff1a; cnpm i react-router-dom --save 官方文档 应该在父路由元素中用来渲染其子路由元素。这允许在渲染子路由时显示嵌套的 UI。如果父路由完全匹配&#xff0c;则将渲染子索引…

C++容器——stack

stack容器 C的std::stack容器是一个基于适配器模板类实现的容器适配器&#xff0c;它提供了一种后进先出的数据结构&#xff0c;即栈。 特点&#xff1a; 1.后进先出&#xff1a;元素在栈容器中按照后进先出的顺序管理&#xff0c;最后放入的元素将会最先被取出。 2.只能从栈…

OpenAI 希望您对其人工智能模型的行为发表意见

OpenAI 公布了一套高级“生活”指南&#xff0c;称为模型规范&#xff0c;该指南将定期更新&#xff0c;并确定其 AI 模型&#xff08;例如 ChatGPT 和 DALL-E&#xff09;在某些情况下的行为方式。 他们发布了初稿&#xff0c;并询问使用其模型的公众和利益相关者&#xff08…

nginx自动部署-跨操作系统

项目里面有一个需求&#xff0c;就是需要用让nginx进程提供给系统管理一个start,stop和getPid方法&#xff0c;这样系统管理可以自动拉起来nginx&#xff0c;达到自动部署的目的。离线部署同样适用 这样一来&#xff0c;我就需要提供windows版本linux不同版本的nginx源码包&am…

Vue+OpenLayers7入门到实战:OpenLayers解析通过fetch请求的GeoJson格式数据,并叠加要素文字标注,以行政区划边界为例

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上通过fetch请求geojson数据,然后通过OpenLayers解析为Feature要素叠加到图层上,并且通过动态设置标注方式显示要素属性为文字标注。 本章还是以行政区划边界为例,这个…

《编译原理》阅读笔记:p4-p17

《编译原理》学习第 2 天&#xff0c;p4-p17总结&#xff0c;总计 14 页。 一、技术总结 1.structure of compiler 编译器组成包括&#xff1a;Lexical Analyzer -> Syntax Analazer -> Semantic tree -> Intermediate Code Generator -> Machine-Independent C…

FMEA助力医疗设备研发制造:领跑未来,实现弯道超车!

医疗设备作为保障人类健康的重要工具&#xff0c;其研发与制造水平直接关系到医疗技术的进步。然而&#xff0c;在激烈的市场竞争中&#xff0c;如何能够让自家医疗设备研发制造实现弯道超车&#xff0c;成为行业佼佼者&#xff1f;答案就在于——FMEA&#xff08;失效模式与影…

网络编程套接字和传输层tcp,tdp协议

认识端口号 我们知道在网络数据传输的时候&#xff0c;在IP数据包头部有两个IP地址&#xff0c;分别叫做源IP地址和目的IP地址。IP地址是帮助我们在网络中确定最终发送的主机&#xff0c;但是实际上数据应该发送到主机上指定的进程上的&#xff0c;所以我们不仅要确定主机&…

字节发布文生图模型PuLID:高效身份ID特征定制,单张图像克隆AI虚拟分身

前言 字节研究团队近日提出了一种新型的文生图身份ID定制方法PuLID(Pure and Lightning ID Customization)。相较于传统的微调方法&#xff0c;PuLID无需复杂的参数优化就可以实现高效的身份ID定制&#xff0c;且能最大程度减少对原始模型行为的干扰。 PuLID是通过将轻量级的…

进程状态解析

目录 前言 一、进程概念 二、如何创建一个进程 三、进程状态 3.1运行状态&休眠状态&#xff1a; 3.2前台与后台状态 3.3磁盘休眠状态 3.4暂停状态 3.5调试状态 3.6僵尸状态 3.7一种特殊的进程状态——孤儿进程 总结 前言 在博主的上一篇文章中(点我查看)&#x…

上市公司-库存周转率、供应链效率明细数据集(2000-2022年)

01、数据介绍 库存周转率是衡量企业库存管理效率的关键指标之一&#xff0c;它反映了企业库存的流转速度。而供应链效率则体现了企业在整个供应链管理中的表现&#xff0c;包括采购、生产、物流等环节的协同和优化。 提高库存周转率和供应链效率是上市公司优化企业运营和管理…

蓝桥杯EDA常见电路原理图设计和分析

目录 前言 一、常见器件及其作用 二、原理图设计题目 1.蜂鸣器原理图 2.LCD背光控制电路 3.参考电压源 4.低通滤波器电路设计 5.5-3.3电源转换电路 6.3.3V-VDD_EXT电平转换电路 7.DS18B20原理图 8.供电输出控制接口电路 9.电源检测接口电路 10.USB转串口电路 三、…

TCP及IP协议

TCP协议的传输是可靠的&#xff0c;而UDP协议的传输“尽力而为” TCP传输可靠性———确认&#xff0c;重传&#xff0c;排序&#xff0c;流控。 流控&#xff1a;滑动窗口机制 TTL--- 数据包每经过一个路由器的转发&#xff0c;他的TTL值将减1&#xff0c;当一个数据包中的T…

网工常用工具——Xshell

今天给各位介绍一下&#xff0c;Xshell工具 Xshell是一款功能强大的终端模拟器&#xff0c;主要用于Windows操作系统&#xff0c;用于远程访问和管理服务器&#xff0c;允许用户通过SSH&#xff08;Secure Shell&#xff09;协议安全地连接到远程Linux/Unix服务器或其他支持SS…

FPGA+DDR+SERDES+USB3.0单向传输机方案,数据只能单向传输,避免反向攻击,确保系统安全

FPGADDRSERDESUSB3.0方案&#xff0c;设备包含发送端接收端&#xff0c;物料上采用光纤通讯&#xff0c;数据只能单向传输&#xff0c;避免反向攻击&#xff0c;确保系统安全 客户应用:高安全、高可靠性要求的场景 主要性能: 1.支持USB3.0传输&#xff0c;实测可达到350MB/s 2.…

OSI网络7层的功能介绍

目录 1.OSI功能介绍 2.SNA 3.X.25 1.OSI功能介绍 2.SNA SNA: IBM Systems Network Architecture)SNA是IBM公司开发的网络体系结构&#xff0c;在IBM公司的主机环境中得到广泛的应用。一般来说&#xff0c;SNA主要是IBM公司的大型机(ES/9000、S/390等)和中型机(AS/400)的主要…

智能绘画系统源码系统 后台自由设置会员套餐 带网站的安装包以及安装部署教程

在当今数字化与智能化快速发展的时代&#xff0c;艺术与技术正以前所未有的速度相互融合。为了满足广大绘画爱好者和专业艺术家的需求&#xff0c;我们精心打造了一款智能绘画系统源码系统。该系统不仅具备高度的智能化特性&#xff0c;还提供了丰富的后台管理功能&#xff0c;…

【Java一些注解知识】

RequestMapping RequestMapping是Spring框架中的一个注解&#xff0c;用于将HTTP请求映射到特定的处理方法上。通过使用RequestMapping注解&#xff0c;我们可以指定处理方法应该处理的URL路径和HTTP请求方法。 下面是一个简单的示例&#xff1a; 假设我们有一个UserControl…

VS code放大缩小

​ 放大 ctrl和一起按 缩小 ctrl和-一起按 上面是键盘组合方式&#xff0c;如果需要Ctrl滚轮实现代码的缩放&#xff0c;可以这样。 在文件-->首选项-->设置-->用户设置&#xff1a; 在搜索栏输入mouseWheelZoom 选中即可。 ​ 输入 mouseWheelZoom 进行搜素 特…
最新文章