Spider

一个小的 Dart 库,用于从 assets 文件夹生成 Assets Dart 代码。它会生成一个包含静态常量变量的 Dart 类,可以在 Flutter 应用中的任何位置安全地引用这些资产。

示例

之前

Widget build(BuildContext context) {
  return Image(image: AssetImage('assets/background.png'));
}

之后

Widget build(BuildContext context) {
  return Image(image: AssetImage(Assets.background));
}

生成资源类

class Assets {
  static const String background = 'assets/background.png';
}

此方法不允许对字符串拼写错误进行错误范围处理。此外,它还提供
IDE 中的自动完成功能,这在您拥有
大量资源时非常方便。

安装

此包是一个独立的库,不链接到您的
项目。因此,无需将其添加到您的 flutter 项目,因为它
作为全局命令行工具适用于您所有项目。

pub global activate spider

运行以下命令查看帮助

spider --help

用法

创建配置文件

Spider 提供了一种非常简单直接的创建
配置文件的方法。
执行以下命令,它将创建一个配置文件
其中包含默认配置。

spider create

现在您可以修改可用配置,Spider 将使用
这些配置来生成 dart 代码。

使用 JSON 配置文件

尽管上述命令会创建 YAML 格式的配置文件,但 Spider
也支持 JSON 格式的配置文件。使用此命令来
创建 JSON 配置文件而不是 YAML

spider create --json

无论您使用哪种配置格式,JSON 还是 YAML,Spider
都会自动检测并用于代码生成。

这是配置文件中的默认配置

groups:
  - path: assets/images
    class_name: Images
    package: res

生成代码

运行以下命令生成 dart 代码

spider build

监视目录

Spider 还可以监视给定目录中的文件更改并自动重建
dart 代码。使用以下命令监视更改

spider build --watch

有关更多信息,请参阅帮助

spider build --help

智能监视(实验性)

标准的 --watch 选项会监视目录中发生的任何类型的更改
但是,可以通过智能监视目录来改进这一点。
它包括忽略不会影响任何内容(如
文件内容更改)的事件。此外,它只监视允许的文件类型并
仅针对这些文件的更改进行重建。

运行以下命令来智能监视目录。

spider build --smart-watch

按文件扩展名分类

默认情况下,Spider 允许在 dart 代码中引用任何文件。
但您可以更改此行为。您可以指定要引用的文件。

path: assets
class_name: Assets
package: res
types: [ jpg, png, jpeg, webp, bmp, gif ]

使用前缀

您可以使用前缀来命名生成的 dart 引用。
前缀将附加到格式化的引用名称。

path: assets
class_name: Assets
package: res
prefix: ic
输出
class Assets {
  static const String icCamera = 'assets/camera.png';
  static const String icLocation = 'assets/location.png';
}

高级配置

Spider 支持多种配置和分类。
如果您想按模块、类型或其他任何内容对您的资源进行分组,您可以
使用 Spider 中的 groups 来实现。

示例

假设您的项目中同时有矢量(SVG)和栅格图像
并且您希望将它们分开分类,以便可以使用
不同的类来处理它们。您可以在此处使用 groups。保留您的矢量和栅格
图像放在不同的文件夹中,并在配置文件中指定它们。

spider.yaml

groups:
  - path: assets/images
    class_name: Images
    package: res
  - path: assets/vectors
    class_name: Svgs
    package: res

在此,列表中的第一个项指示将
assets/images 文件夹中的资源分组到名为 Images 的类下,第二个
项指示将 assets/vectors 目录中的资源分组到
名为 Svgs 的类下。

因此,当您引用 Images 类时,自动完成功能只会建议栅格
图像,您就知道可以使用它们与 AssetImage
另一个与矢量渲染库一起使用。

启用详细日志记录

Spider 尽量不让终端因冗余日志而过载,这些日志在大多数情况下
都是不必要的。然而,当需要调试任何内容时,这些详细日志会派上用场。
您可以通过
在构建命令中使用 --verbose 选项来启用详细日志记录。

spider build --verbose

# watching directories with verbose logs
spider build --watch --verbose

GitHub

https://github.com/BirjuVachhani/spider