flutter09 - 包管理器

Flutter09 - 包管理器

一个APP在实际开发中往往会依赖很多包,而这些包通常都有交叉依赖关系、版本依赖等,如果由开发者手动来管理应用中的依赖包将会非常麻烦。因此,各种开发生态或编程语言官方通常都会提供一些包管理工具:

  • Android提供了Gradle来管理依赖
  • iOS用Cocoapods或Carthage来管理依赖
  • Node中通过npm等
  • flutter如何使用配置文件pubspec.yaml
name: first_flutter_app # 应用或包名
description: A new Flutter application. # 应用或包的描述/简介

version: 1.0.0+1 # 应用或包的版本号

environment:  # sdk环境
  sdk: ">=2.1.0 <3.0.0"

dependencies: # 应用或包依赖的其他包或插件
  flutter:
    sdk: flutter

 cupertino_icons: ^0.1.2

dev_dependencies: # 开发环境依赖的工具包
  flutter_test:
    sdk: flutter

flutter: # flutter相关的配置选项
  uses-material-design: true

每个字段的意义:

  • name:应用或包名称。
  • description: 应用或包的描述、简介。
  • version:应用或包的版本号。
  • dependencies:应用或包依赖的其它包或插件。
  • dev_dependencies:开发环境依赖的工具包(而不是flutter应用本身依赖的包)。
  • flutter:flutter相关的配置选项。

下载和使用第三方库

Pub(https://pub.dev/ )是Google官方的Dart Packages仓库,类似于node中的npm仓库,android中的jcenter。

搜索需要的 第三方库后

添加新的依赖

cupertino_icons: ^0.1.2

# 新添加的依赖
english_words: ^3.1.3

然后点击Packages get

我们可以在控制台中看到以下内容

/Users/a/flutter/bin/flutter --no-color packages get
Running "flutter pub get" in first_flutter_app...                   3.4s
Process finished with exit code 0

我们也可以在控制台,定位到当前工程目录,然后手动运行flutter packages get 命令来下载依赖包。

dependenciesdev_dependencies的区别:

前者的依赖包将作为APP的源码的一部分参与编译,生成最终的安装包。而后者的依赖包只是作为开发阶段的一些工具包,主要是用于帮助我们提高开发、测试效率,比如flutter的自动化测试包等

使用第三方库

import 'package:english_words/english_words.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final wordStr = WordPair.random(); //使用第三方库生成一个随机单词

    return MaterialApp(
      title: "使用第三方库生成一个随机单词",
      home: Scaffold(
        appBar: AppBar(
          title: Text("使用第三方库生成一个随机单词"),
        ),
        body: Center(
          child: Column(
            children: <Widget>[
              Text(
                "$wordStr",
              ),
            ],
          ),
        ),
      ),
    );
  }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kqtiVe7i-1584404599137)(https://s1.ax1x.com/2020/03/17/8trfyT.png)]

其他依赖方式

  • 依赖本地包

    如果我们正在本地开发一个包,包名为pkg1,我们可以通过下面方式依赖:

    dependencies:
        pkg1:
            path: ../../code/pkg1
    

    路径可以是相对的,也可以是绝对的。

  • 依赖Git:你也可以依赖存储在Git仓库中的包。如果软件包位于仓库的根目录中,请使用以下语法

    dependencies:
      pkg1:
        git:
          url: git://github.com/xxx/pkg1.git
    

    上面假定包位于Git存储库的根目录中。如果不是这种情况,可以使用path参数指定相对位置,例如:

    dependencies:
      package1:
        git:
          url: git://github.com/flutter/packages.git
          path: packages/package1
    

但还有一些其它依赖方式,完整的内容读者可以自行查看:https://www.dartlang.org/tools/pub/dependencies

发布了49 篇原创文章 · 获赞 6 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zlhyy666666/article/details/104913770
今日推荐