返回介绍

使用集成

发布于 2024-06-05 21:19:57 字数 13635 浏览 0 评论 0 收藏 0

使用 Astro 集成只需几行代码就能为你的项目添加新的功能和行为。你可以自己编写一个自定义的集成,可以使用官方集成,还可以使用社区内的集成。

集成能够…

  • 解锁 React、Vue、Svelte、Solid 和其他流行的 UI 框架。
  • 只需几行代码就能整合 Tailwind 和 Partytown 等工具。
  • 为你的项目添加新功能,如自动生成网站地图。
  • 编写自定义代码,与构建过程、开发服务器等挂钩。

官方集成

以下集成由 Astro 维护。

UI 框架

SSR 适配器

其他集成

自动集成设置

Astro 包含了一个 astro add 命令来自动设置官方集成。许多社区插件也可以使用这个命令添加。请查阅每个集成的文档,以确定是否支持 astro add,或者你是否需要手动安装

只需用你的包管理器运行 astro add 命令,我们的自动集成向导将更新你的配置文件并安装任何必要的依赖。

  • npm
  • pnpm
  • Yarn
npx astro add react
pnpm astro add react
yarn astro add react

甚至还可以同时配置多个集成!

  • npm
  • pnpm
  • Yarn
npx astro add react tailwind partytown
pnpm astro add react tailwind partytown
yarn astro add react tailwind partytown

手动安装

Astro 集成总是添加在 astro.config.mjs 文件中的 integrations 属性。

有三种常见的方法来导入集成到你的 Astro 项目:

  1. 安装 npm 包集成

  2. 从项目内部的本地文件导入你自己的集成。

  3. 直接在配置文件中内联编写集成。

    astro.config.mjs
    import { defineConfig } from 'astro/config';
    import installedIntegration from '@astrojs/vue';
    import localIntegration from './my-integration.js';
    
    
    export default defineConfig({
      integrations: [
        // 1. 从已安装的 npm 包中导入
        installedIntegration(),
        // 2. 从本地 JS 文件导入
        localIntegration(),
        // 3. 内联对象
        {name: 'namespace:id', hooks: { /* ... */ }},
      ]
    });

查看集成 API 参考资料,了解所有不同的集成编写方式。

安装 NPM 包

使用包管理器安装 NPM 包集成,然后手动更新 astro.config.mjs

例如,安装 @astrojs/sitemap 集成:

  1. 使用你偏好的包管理器将集成安装到项目依赖中:

    • npm
    • pnpm
    • Yarn
    npm install @astrojs/sitemap
    pnpm add @astrojs/sitemap
    yarn add @astrojs/sitemap
  2. 将集成导入到你的 astro.config.mjs 文件,并将其连同任何配置选项添加到你的 integrations[] 数组中:

    astro.config.mjs
    import { defineConfig } from 'astro/config';import sitemap from '@astrojs/sitemap';
    
    
    export default defineConfig({
      // ...
      integrations: [sitemap()],
      // ...
    });

    请注意,不同的集成可能有不同的配置设置。阅读每个集成的文档,并将任何必要的配置选项应用到 astro.config.mjs 中你所选择的集成上。

自定义选项

集成几乎都是以工厂函数的形式编写的,并返回真实的集成对象。这使得你可以通过向工厂函数传递参数和选项定制集成。

integrations: [
  // 示例:用函数参数来定制你的集成
  sitemap({filter: true})
]

切换集成

你可以切换集成启用状态,而不用担心遗留的 undefined 和布尔值问题,Astro 会自动忽略假值的集成。

integrations: [
  // 示例:在 Windows 上跳过网站地图的构建
  process.platform !== 'win32' && sitemap()
]

更新集成

要同时更新所有官方集成,运行 @astrojs/upgrade 命令。它会把 Astro 和所有官方集成更新到最新版本。

自动更新

  • npm
  • pnpm
  • Yarn
# 同时升级 Astro 和官方集成到最新版本
npx @astrojs/upgrade
# 同时升级 Astro 和官方集成到最新版本
pnpm dlx @astrojs/upgrade
# 同时升级 Astro 和官方集成到最新版本
yarn dlx @astrojs/upgrade

手动更新

要手动更新一个或多个集成,使用你的包管理器对应的命令。

  • npm
  • pnpm
  • Yarn
# 示例:升级 React 和 Tailwind 集成
npm install @astrojs/react@latest @astrojs/tailwind@latest
# 示例:升级 React 和 Tailwind 集成
pnpm add @astrojs/react@latest @astrojs/tailwind@latest
# 示例:升级 React 和 Tailwind 集成
yarn add @astrojs/react@latest @astrojs/tailwind@latest

移除集成

要移除某个集成,首先从你的项目中卸载它

  • npm
  • pnpm
  • Yarn
npm uninstall @astrojs/react
pnpm remove @astrojs/react
yarn remove @astrojs/react

接下来,从 astro.config.* 文件中移除该集成:

astro.config.mjs
import { defineConfig } from 'astro/config';

import react from '@astrojs/react';


export default defineConfig({
  integrations: [    react()
  ]
});

寻找更多集成

你可以在 Astro 集成目录中找到许多由社区开发的集成。点击链接查看详细的使用和配置说明。

构建自己的集成

Astro 的集成 API 受到 Rollup 和 Vite 的启发,其设计使任何曾经写过 Rollup 或 Vite 插件的人都感到熟悉。

查看集成 API,了解集成的作用以及如何自己编写一个集成。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文