菜单

构建系统

相关源文件

animate.css 的构建系统是一个基于 PostCSS 的管道,负责将源 CSS 文件转换为具有适当浏览器兼容性和优化的各种输出格式。本文档涵盖了构建架构、可用脚本、配置选项以及如何创建自定义构建。

有关自定义构建的创建和定制详细信息,请参阅 自定义构建

概述

animate.css 构建系统使用 PostCSS 和多个插件来处理和优化,将源文件转换为三种不同的输出格式。

来源:package.json18-30 postcss.config.js17-46

构建脚本

构建过程通过 package.json 文件中定义的 npm 脚本进行控制。这些脚本处理不同的构建目标和附加任务。

脚本描述命令
start运行所有构建格式(原始、生产、兼容)npm-run-all raw prod compat
raw创建未压缩的开发版本npx postcss source/animate.css -o animate.css --no-map --env development
dev带监视模式的开发构建npx postcss source/animate.css -o animate.css --no-map --env development -w
prod创建压缩的生产版本npx postcss source/animate.css -o animate.min.css --no-map --env production
compat创建不带前缀的兼容版本npx postcss source/animate.css -o animate.compat.css --no-map --env compat
docs:library为文档网站构建 CSSnpx postcss source/animate.css -o ./docs/animate.min.css --no-map --env production
docs构建库和文档npm-run-all docs:library docs:pages

来源:package.json18-30

PostCSS 管道

构建系统利用一系列 PostCSS 插件来处理和转换 CSS。每个插件在管道中都有特定作用。

来源:postcss.config.js23-46

PostCSS 插件及其作用

插件目的
postcss-import@import 规则内联为实际的 CSS 内容
postcss-prefixer将配置的前缀添加到动画类名
postcss-preset-env添加浏览器兼容性功能和自动前缀
cssnano优化和压缩 CSS(仅限生产/兼容构建)
postcss-header将许可证和版本信息添加到输出文件顶部

来源:postcss.config.js26-43

构建配置选项

构建系统的行为可以通过 package.json 文件中的配置选项进行自定义。

动画类前缀

动画类的前缀(默认是 animate__)可以通过 package.json 中的 animateConfig.prefix 属性进行配置。

来源:package.json15-17 postcss.config.js18 postcss.config.js28-31

特定环境的行为

构建过程的行为根据传递给 PostCSS 的环境标志而变化

环境前缀行为代码压缩输出
development (开发)添加配置的前缀不进行压缩animate.css
production (生产)添加配置的前缀经过 cssnano 压缩animate.min.css
compat不添加前缀经过 cssnano 压缩animate.compat.css

来源:postcss.config.js18-19 postcss.config.js40

构建输出

构建系统生成三个不同的输出文件,每个文件都有特定的用途。

来源:package.json20-22 docsSource/sections/07-custom-builds.md15-19

输出文件详情

  1. animate.css (开发构建)

    • 未压缩的 CSS,格式良好
    • 包含配置的类前缀
    • 用于开发和调试
  2. animate.min.css (生产构建)

    • 压缩和优化的 CSS
    • 包含配置的类前缀
    • 用于生产环境
  3. animate.compat.css (兼容构建)

    • 压缩的 CSS,不带类前缀
    • 类名类似于 .bounce 而不是 .animate__bounce
    • 作为从旧版本迁移的路径

来源:docsSource/sections/07-custom-builds.md17-19

构建文档

构建系统还负责为文档站点生成 CSS

来源:package.json25-27

与版本控制集成

构建系统包含与版本控制集成的脚本,用于发布

  • version 脚本运行构建过程,并将生成的文​​件添加到 Git
  • postversion 脚本将更改和标签推送到远程存储库

来源:package.json28-29

技术实现说明

PostCSS 配置定义在 postcss.config.js 中,它

  1. 从 package.json 提取包元数据(版本、主页、作者)
  2. 根据构建环境确定适当的前缀
  3. 按顺序配置和应用 PostCSS 插件
  4. 在构建过程中向控制台输出状态消息

当以兼容模式 (compat) 运行时,前缀被设置为空字符串,从而有效地从类名中删除前缀。

来源:postcss.config.js1-46

浏览器兼容性

构建系统配置为支持现代浏览器,同时保持与旧浏览器的兼容性

package.json 中的 browserslist 配置目标是

  • 市场份额超过 3% 的浏览器
  • 主要浏览器的最新 2 个版本

来源:package.json32-35 postcss.config.js32-38