# Instalación y uso básico

- Human documentation: [https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation](https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation)

- Agent Markdown: [https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation.md](https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation.md)

- Requested language: `es-ES`

- Content language: `es-ES`

- Documentation version: `1.2.0`

- Source: [sheets/getting-started/installation/index.es-ES.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/sheets/getting-started/installation/index.es-ES.mdx)

---

Univer adopta una filosofía de diseño basada en complementos, con el objetivo de proporcionar a los desarrolladores un marco flexible y extensible para aplicaciones de documentos electrónicos. A través de este diseño basado en complementos, Univer puede integrar fácilmente varios módulos funcionales para satisfacer las necesidades de diferentes usuarios. Sin embargo, el diseño basado en complementos aumenta la complejidad de la aplicación, especialmente para los desarrolladores que son nuevos en Univer.

Por esta razón, Univer ofrece dos formas de ayudarlo a integrar y usar Univer rápidamente: **modo complemento** y **modo preestablecido**. El llamado **preajuste** es en realidad una combinación de complementos preconfigurados, por lo que las capacidades proporcionadas por ambos modos son las mismas sin extensiones complejas.

> [!WARNING: Caution]
> * **Versiones de dependencia consistentes**: ya sea que use el modo preestablecido o el modo complemento, debe asegurarse de que todas las dependencias tengan números de versión consistentes.
> * **Mezcla cautelosa de complementos y ajustes preestablecidos**: si un complemento ya está incluido en un ajuste preestablecido, no necesita importar ese complemento por separado cuando use el ajuste preestablecido. De lo contrario, puede provocar conflictos con los complementos o anomalías funcionales.

Diferencias entre el modo preestablecido y el modo complemento:

| Modo de complemento                                                                   | Modo preestablecido                                                                                               |
| ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Requiere la importación manual de los paquetes de fachada correspondientes            | No es necesario importar manualmente ningún paquete de fachada                                                    |
| Requiere atención al orden de registro de los complementos con la misma funcionalidad | No es necesario prestar atención al orden de registro de las funcionalidades incluidas en ajustes preestablecidos |
| Admite carga diferida bajo demanda                                                    | Carga los preajustes configurados de forma sincrónica durante la inicialización                                   |

Univer ofrece dos modos de integración: *el modo preestablecido* y *el modo plugin*. El modo preestablecido simplifica la configuración mediante conjuntos de plugins preconfigurados. Si necesita **personalizaciones o extensiones avanzadas**, recomendamos el modo plugin para combinar y configurar los plugins de forma individual.

## Configuración a través del modo complemento

Univer proporciona una serie de funciones en forma de complementos. Además de algunos complementos principales que son esenciales para el producto, puede introducir selectivamente otros complementos según sea necesario. Aquí, tomaremos la aplicación Univer Sheets más básica como ejemplo para presentar cómo combinar e instalar complementos manualmente.

A diferencia del modo preestablecido, el modo complemento no incluye Facade API[^facade-entry] de forma predeterminada. Las partes relacionadas con Facade API en los siguientes ejemplos de código son opcionales y puede decidir si desea eliminarlas según sus necesidades.

### Uso del Administrador de paquetes

#### Instalación

Usamos React para desarrollar la vista (esto no afecta su uso de Univer en Vue o Angular) y Rxjs para manejar flujos de datos. Dado que estas dos bibliotecas se utilizan ampliamente en el desarrollo front-end moderno, las tratamos como dependencias entre pares. Sin embargo, diferentes herramientas de administración de paquetes tienen diferentes comportamientos con respecto a las dependencias de pares, por lo que es posible que deba prestar atención a algunos detalles.

> [!NOTE]
> * Si está utilizando npm, asegúrese de utilizar npm\@7 o superior. Esto se debe a que npm\@3 \~ npm\@6 no instalará correctamente `peerDependencies`[^1].
> * Si está utilizando pnpm, asegúrese de estar utilizando pnpm\@8 o superior. Si está utilizando pnpm\@6 \~ pnpm\@7, puede intentar configurar `auto-install-peers=true` [^2] para resolver los problemas de instalación de dependencias.
> * Si está utilizando hilo, debe instalar manualmente el `peerDependencies`[^3] que falta, los comandos de instalación a continuación ya incluyen estas dependencias.

#### pnpm

```shell
pnpm add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
```

#### npm

```shell
npm install @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
```

#### yarn

```shell
yarn add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui react react-dom rxjs
```

#### bun

```shell
bun add @univerjs/core @univerjs/design @univerjs/docs @univerjs/docs-ui @univerjs/engine-formula @univerjs/engine-render @univerjs/sheets @univerjs/sheets-formula @univerjs/sheets-formula-ui @univerjs/sheets-numfmt @univerjs/sheets-numfmt-ui @univerjs/sheets-ui @univerjs/ui
```

#### Uso

> [!WARNING: Caution]
> * No todos los complementos incluyen paquetes de fachada, paquetes de idioma y archivos de estilo. Especificaremos esto en la documentación de cada característica.
> * El orden de importación de los archivos de estilo es importante. Asegúrese de importar los estilos CSS de `@univerjs/design` y `@univerjs/ui` antes de importar los estilos de otros complementos.

1.
   Debe importar los archivos de estilo de Univer, los paquetes de idioma y algunos complementos necesarios en su proyecto:
   
   ```typescript
   import { LocaleType, mergeLocales, Univer, UniverInstanceType } from '@univerjs/core'
   import { FUniver } from '@univerjs/core/facade'
   import DesignEnUS from '@univerjs/design/locale/en-US'
   import { UniverDocsPlugin } from '@univerjs/docs'
   import { UniverDocsUIPlugin } from '@univerjs/docs-ui'
   import DocsUIEnUS from '@univerjs/docs-ui/locale/en-US'
   import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula'
   import { UniverRenderEnginePlugin } from '@univerjs/engine-render'
   import { UniverSheetsPlugin } from '@univerjs/sheets'
   import { UniverSheetsFormulaPlugin } from '@univerjs/sheets-formula'
   import { UniverSheetsFormulaUIPlugin } from '@univerjs/sheets-formula-ui'
   import SheetsFormulaUIEnUS from '@univerjs/sheets-formula-ui/locale/en-US'
   import { UniverSheetsNumfmtPlugin } from '@univerjs/sheets-numfmt'
   import { UniverSheetsNumfmtUIPlugin } from '@univerjs/sheets-numfmt-ui'
   import SheetsNumfmtUIEnUS from '@univerjs/sheets-numfmt-ui/locale/en-US'
   import { UniverSheetsUIPlugin } from '@univerjs/sheets-ui'
   import SheetsUIEnUS from '@univerjs/sheets-ui/locale/en-US'
   import SheetsEnUS from '@univerjs/sheets/locale/en-US'
   import { UniverUIPlugin } from '@univerjs/ui'
   import UIEnUS from '@univerjs/ui/locale/en-US'
   
   import '@univerjs/design/lib/index.css'
   import '@univerjs/ui/lib/index.css'
   import '@univerjs/docs-ui/lib/index.css'
   import '@univerjs/sheets-ui/lib/index.css'
   import '@univerjs/sheets-formula-ui/lib/index.css'
   import '@univerjs/sheets-numfmt-ui/lib/index.css'
   ```

1.
   Si necesita utilizar la API de Facade, puede importar los paquetes de fachada relevantes aquí. Esto es opcional, pero recomendado:
   
   ```typescript
   import '@univerjs/engine-formula/facade'
   import '@univerjs/ui/facade'
   import '@univerjs/docs-ui/facade'
   import '@univerjs/sheets/facade'
   import '@univerjs/sheets-ui/facade'
   import '@univerjs/sheets-formula/facade'
   import '@univerjs/sheets-numfmt/facade'
   ```

1.
   Luego cree una instancia de Univer y registre estos complementos:
   
   ```typescript
   const univer = new Univer({
     locale: LocaleType.EN_US,
     locales: {
       [LocaleType.EN_US]: mergeLocales(
         DesignEnUS,
         UIEnUS,
         DocsUIEnUS,
         SheetsEnUS,
         SheetsUIEnUS,
         SheetsFormulaUIEnUS,
         SheetsNumfmtUIEnUS,
       ),
     },
   })
   
   univer.registerPlugin(UniverRenderEnginePlugin)
   univer.registerPlugin(UniverFormulaEnginePlugin)
   
   univer.registerPlugin(UniverUIPlugin, {
     container: 'app',
   })
   
   univer.registerPlugin(UniverDocsPlugin)
   univer.registerPlugin(UniverDocsUIPlugin)
   
   univer.registerPlugin(UniverSheetsPlugin)
   univer.registerPlugin(UniverSheetsUIPlugin)
   univer.registerPlugin(UniverSheetsFormulaPlugin)
   univer.registerPlugin(UniverSheetsFormulaUIPlugin)
   univer.registerPlugin(UniverSheetsNumfmtPlugin)
   univer.registerPlugin(UniverSheetsNumfmtUIPlugin)
   
   univer.createUnit(UniverInstanceType.UNIVER_SHEET, {})
   
   const univerAPI = FUniver.newAPI(univer)
   ```

> Interactive example: [Open the playground](/playground/sheets/slim-via-plugin)

#### Métodos `univer.registerPlugin` y `univer.registerPlugins`

El método \`\`univer.registerPlugin\` se utiliza para registrar un complemento en la instancia de Univer. Puede llamar a este método después de crear la instancia de Univer para registrar complementos.

Puede registrar un complemento utilizando el método `univer.registerPlugin(Plugin, options)`, donde `Plugin` es el complemento que se registrará y `options` son elementos de configuración opcionales, ya que cada complemento puede tener diferentes elementos de configuración.

También puede usar `univer.registerPlugins` para pasar una matriz y registrar varios complementos a la vez. Esto es útil para escenarios en los que necesita administrar complementos de forma centralizada.

```typescript
univer.registerPlugins([
  UniverRenderEnginePlugin,
  UniverFormulaEnginePlugin,
  [UniverUIPlugin, {
    container: 'app',
  }],
  UniverDocsPlugin,
  UniverDocsUIPlugin,
  UniverSheetsPlugin,
  UniverSheetsUIPlugin,
  UniverSheetsFormulaPlugin,
  UniverSheetsFormulaUIPlugin,
  UniverSheetsNumfmtPlugin,
  UniverSheetsNumfmtUIPlugin,
])
```

#### Complementos de carga diferida

Una ventaja común del modo complemento es que puede controlar el tiempo de carga de los complementos de manera más flexible. Un enfoque común es cargar solo los complementos esenciales durante la inicialización de la aplicación, mientras se difiere la carga de algunos complementos hasta que se complete el primer procesamiento.

```typescript
// ...

univer.createUnit(UniverInstanceType.UNIVER_SHEET, {})

import('@univerjs/watermark').then(({ UniverWatermarkPlugin }) => {
  univer.registerPlugin(UniverWatermarkPlugin, {
    textWatermarkSettings: {
      content: 'Hello, Univer!',
      fontSize: 36,
    },
  })
})
```

Nuestra [demostración oficial](https://github.com/dream-num/univer/blob/0d849012594882307186f33734b8b89d80a729e9/examples/src/sheets/main.ts) utiliza esta técnica de optimización, a la que puede consultar.

### Compatibilidad móvil

> [!WARNING]
> Estos ejemplos requieren paquetes del SDK que exporten los plugins móviles indicados. Mantenga todas las dependencias `@univerjs/*` y `@univerjs-pro/*` en **la misma versión**.

Utilice **plugins de UI móvil** para los controles táctiles de Univer Sheets.[^mobile-ui-mode] Elija el modo antes de crear el editor.

La compatibilidad móvil de Sheets sigue siendo **experimental**; valide las funciones necesarias en los dispositivos de destino.

En el ejemplo de modo plugin anterior, **sustituya** las siguientes importaciones y registros de UI antes de `createUnit()`. No los añada a un editor de escritorio ya inicializado. Conserve modelos, motores, traducciones, CSS e importaciones Facade. Las clases son exportaciones con nombre del **mismo punto de entrada del paquete**.

```typescript
import { UniverSheetsFormulaMobileUIPlugin } from '@univerjs/sheets-formula-ui'
import { UniverSheetsNumfmtMobileUIPlugin } from '@univerjs/sheets-numfmt-ui'
import { UniverSheetsMobileUIPlugin } from '@univerjs/sheets-ui'
import { UniverMobileUIPlugin } from '@univerjs/ui'

univer.registerPlugin(UniverMobileUIPlugin, { container: 'app' })
univer.registerPlugin(UniverSheetsMobileUIPlugin)
univer.registerPlugin(UniverSheetsFormulaMobileUIPlugin)
univer.registerPlugin(UniverSheetsNumfmtMobileUIPlugin)
```

**Conserve `UniverDocsUIPlugin` en Sheets.** `UniverSheetsMobileUIPlugin` depende de él para editar texto dentro de las celdas. El editor Docs independiente utiliza `UniverDocsMobileUIPlugin`.

Actualmente, `UniverSheetsCorePreset` y `UniverDocsCorePreset` registran UI de escritorio y no tienen la opción `mobile: true`. Configure explícitamente los plugins móviles. Añadirlos después de un preset de escritorio no sustituye su UI.

#### Correspondencia de plugins

Registre solo las funciones necesarias, con sus modelos y dependencias. Disponer de una UI móvil no implica que ambas interfaces ofrezcan los mismos controles. Las funciones Pro siguen necesitando la licencia correspondiente. Para las funciones que necesitan un backend, integra los módulos correspondientes de [Univer Server SDK](https://docs.univer.ai/es-ES/server.md) en tu aplicación.

| Paquete                                      | Registro de escritorio                      | Registro móvil                                    |
| -------------------------------------------- | ------------------------------------------- | ------------------------------------------------- |
| `@univerjs/ui`                               | `UniverUIPlugin`                            | `UniverMobileUIPlugin`                            |
| `@univerjs/sheets-ui`                        | `UniverSheetsUIPlugin`                      | `UniverSheetsMobileUIPlugin`                      |
| `@univerjs/sheets-formula-ui`                | `UniverSheetsFormulaUIPlugin`               | `UniverSheetsFormulaMobileUIPlugin`               |
| `@univerjs/sheets-numfmt-ui`                 | `UniverSheetsNumfmtUIPlugin`                | `UniverSheetsNumfmtMobileUIPlugin`                |
| `@univerjs/drawing-ui`                       | `UniverDrawingUIPlugin`                     | `UniverDrawingMobileUIPlugin`                     |
| `@univerjs/thread-comment-ui`                | `UniverThreadCommentUIPlugin`               | `UniverThreadCommentMobileUIPlugin`               |
| `@univerjs-pro/shape-editor-ui`              | `UniverShapeEditorUIPlugin`                 | `UniverShapeEditorMobileUIPlugin`                 |
| `@univerjs-pro/chart-ui`                     | `UniverChartUIPlugin`                       | `UniverChartMobileUIPlugin`                       |
| `@univerjs-pro/exchange-client`              | `UniverExchangeClientPlugin`                | `UniverExchangeClientMobileUIPlugin`              |
| `@univerjs/sheets-conditional-formatting-ui` | `UniverSheetsConditionalFormattingUIPlugin` | `UniverSheetsConditionalFormattingMobileUIPlugin` |
| `@univerjs/sheets-crosshair-highlight`       | `UniverSheetsCrosshairHighlightPlugin`      | `UniverSheetsCrosshairHighlightMobileUIPlugin`    |
| `@univerjs/sheets-data-validation-ui`        | `UniverSheetsDataValidationUIPlugin`        | `UniverSheetsDataValidationMobileUIPlugin`        |
| `@univerjs/sheets-drawing-ui`                | `UniverSheetsDrawingUIPlugin`               | `UniverSheetsDrawingMobileUIPlugin`               |
| `@univerjs/sheets-filter-ui`                 | `UniverSheetsFilterUIPlugin`                | `UniverSheetsFilterMobileUIPlugin`                |
| `@univerjs/sheets-find-replace`              | `UniverSheetsFindReplacePlugin`             | `UniverSheetsFindReplaceMobileUIPlugin`           |
| `@univerjs/sheets-hyper-link-ui`             | `UniverSheetsHyperLinkUIPlugin`             | `UniverSheetsHyperLinkMobileUIPlugin`             |
| `@univerjs/sheets-sort-ui`                   | `UniverSheetsSortUIPlugin`                  | `UniverSheetsSortMobileUIPlugin`                  |
| `@univerjs/sheets-table-ui`                  | `UniverSheetsTableUIPlugin`                 | `UniverSheetsTableMobileUIPlugin`                 |
| `@univerjs/sheets-thread-comment-ui`         | `UniverSheetsThreadCommentUIPlugin`         | `UniverSheetsThreadCommentMobileUIPlugin`         |
| `@univerjs-pro/sheets-chart-ui`              | `UniverSheetsChartUIPlugin`                 | `UniverSheetsChartMobileUIPlugin`                 |
| `@univerjs-pro/sheets-exchange-client`       | `UniverSheetsExchangeClientPlugin`          | `UniverSheetsExchangeClientMobileUIPlugin`        |
| `@univerjs-pro/sheets-history-ui`            | `UniverSheetsHistoryUIPlugin`               | `UniverSheetsHistoryMobileUIPlugin`               |
| `@univerjs-pro/sheets-outline-ui`            | `UniverSheetsOutlineUIPlugin`               | `UniverSheetsOutlineMobileUIPlugin`               |
| `@univerjs-pro/sheets-pivot-ui`              | `UniverSheetsPivotTableUIPlugin`            | `UniverSheetsPivotTableMobileUIPlugin`            |
| `@univerjs-pro/sheets-print`                 | `UniverSheetsPrintPlugin`                   | `UniverSheetsPrintMobileUIPlugin`                 |
| `@univerjs-pro/sheets-shape-ui`              | `UniverSheetsShapeUIPlugin`                 | `UniverSheetsShapeMobileUIPlugin`                 |
| `@univerjs-pro/sheets-sparkline-ui`          | `UniverSheetSparklineUIPlugin`              | `UniverSheetSparklineMobileUIPlugin`              |
| `@univerjs/find-replace`                     | `UniverFindReplacePlugin`                   | `UniverFindReplaceMobileUIPlugin`                 |

#### Contenedor e interacción táctil

Defina una altura explícita y el viewport de la página. `100dvh` sigue la altura dinámica del viewport. Compruebe el desplazamiento, el zoom con dos dedos, la selección de texto, el portapapeles y el teclado virtual en los navegadores móviles de destino. Reducir el ancho no selecciona los plugins móviles.

`UniverMobileUIPlugin` usa `disableAutoFocus: true` de forma predeterminada para evitar que el editor tome el foco automáticamente al inicializarse.

```html
<meta name="viewport" content="width=device-width, initial-scale=1" />
<div id="app" style="height: 100dvh"></div>
```

> Interactive example: [Open the playground](/playground/sheets/mobile-via-plugin)

### Importar desde CDN

Si no desea utilizar un administrador de paquetes o simplemente desea probar rápidamente las funciones de Univer, puede importar los recursos relevantes de Univer a través de CDN. Para obtener más información, consulte [Uso de Univer a través de CDN](https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation/cdn.md#plugin-mode).

## Configuración mediante el modo preestablecido

Aquí presentaremos brevemente cómo crear rápidamente una aplicación Univer Sheets con menos de veinte líneas de código.

### Uso del Administrador de paquetes

Si su proyecto ya utiliza herramientas modernas de desarrollo front-end, integrar Univer será muy sencillo. Recomendamos utilizar herramientas de compilación como [Vite](https://vitejs.dev/), [esbuild](https://esbuild.github.io/) o [Webpack 5](https://webpack.js.org/) que tienen un buen soporte para módulos ES para crear aplicaciones Univer. Si está utilizando otras herramientas de compilación (como Webpack 4), es posible que necesite alguna configuración adicional.

#### Instalación

Elija su administrador de paquetes para instalar `@univerjs/presets`:

#### npm

```bash
npm install @univerjs/presets @univerjs/preset-sheets-core
```

#### pnpm

```bash
pnpm add @univerjs/presets @univerjs/preset-sheets-core
```

#### yarn

```bash
yarn add @univerjs/presets @univerjs/preset-sheets-core
```

#### bun

```bash
bun add @univerjs/presets @univerjs/preset-sheets-core
```

#### Uso

> [!WARNING]
> Si su herramienta de compilación no admite el campo `exports` en package.json (común en Webpack 4), deberá cambiar manualmente las rutas asignadas a las rutas reales.

Con el siguiente código, puede iniciar una aplicación Univer Sheets:

```html title="index.html"
<div id="app" style="height: 600px"></div>
```

```typescript
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import UniverPresetSheetsCoreEnUS from '@univerjs/preset-sheets-core/locales/en-US'
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'

import '@univerjs/preset-sheets-core/lib/index.css'

const { univer, univerAPI } = createUniver({
  locale: LocaleType.EN_US,
  locales: {
    [LocaleType.EN_US]: mergeLocales(
      UniverPresetSheetsCoreEnUS,
    ),
  },
  presets: [
    UniverSheetsCorePreset({
      container: 'app',
    }),
  ],
})

univerAPI.createWorkbook({})
```

El objeto `univerAPI` devuelto aquí se llama Univer Facade API, a través del cual puede llamar a muchas funciones proporcionadas por Univer.

> Interactive example: [Open the playground](/playground/sheets/slim-via-preset)

> [!WARNING]
> También puede importar `UniverSheetsCorePreset` desde `@univerjs/presets/preset-sheets-core`, pero debe asegurarse de que su herramienta de compilación admita Campo `exports` en package.json.

#### Método `createUniver`

El método `createUniver` acepta un objeto de configuración que contiene la información de configuración de Univer, como el idioma, el tema y los complementos. Este método devuelve un objeto que contiene la instancia de Univer y la instancia de API de Univer Facade.

Algunas propiedades del objeto de configuración son las siguientes:

* `locale`: entorno de idioma, puede ser un valor de enumeración `LocaleType`.
* `locales`: configuraciones regionales, un objeto, la clave es el entorno de idioma y el valor es el objeto del paquete de idioma.
* `theme`: un objeto de tema, que es opcional.
* `presets`: una matriz de ajustes preestablecidos que contiene los ajustes preestablecidos que se registrarán, como `UniverSheetsCorePreset`.
* `plugins`: una matriz de complementos que contiene los complementos que deben registrarse adicionalmente.

Cuando utiliza un complemento que no está incluido en ningún paquete preestablecido o implementa su propio complemento, puede registrar estos complementos a través de la propiedad `plugins`. También puede optar por registrar complementos utilizando el método `univer.registerPlugin` después de obtener la instancia de Univer.

> [!NOTE]
> Puede encontrar información más detallada sobre el método `createUniver` en la [Referencia API / createUniver](https://docs.univer.ai/es-ES/reference/methods/create-univer.md).

### Importar desde CDN

Si no desea utilizar un administrador de paquetes o simplemente desea probarlo rápidamente Las funciones de Univer le permiten importar los recursos relevantes de Univer a través de CDN. Para obtener más información, consulte [Uso de Univer a través de CDN](https://docs.univer.ai/es-ES/guides/sheets/getting-started/installation/cdn.md#plugin-mode).

## Otras versiones

Además de las versiones estables, Univer ofrece canales alfa/beta y nocturnos. Estas versiones le permiten obtener acceso anticipado a las funciones más nuevas que aún no se han lanzado oficialmente. Sin embargo, tenga en cuenta que más funciones también significan más riesgos. Estas versiones pueden contener errores, funciones incompletas o características inestables. Evite el uso de estas versiones en entornos de producción siempre que sea posible.

### Lanzamiento alfa/beta

Cuando el equipo de desarrollo de Univer completa una nueva función o un cambio significativo, es posible que lo publique previamente en el canal alfa o beta. Puede instalar la versión alfa/beta de un paquete de Univer usando el siguiente comando:

#### npm

```bash
npm install @univerjs/<package-name>@alpha # Alpha version
npm install @univerjs/<package-name>@beta # Beta version
```

#### pnpm

```bash
pnpm add @univerjs/<package-name>@alpha # Alpha version
pnpm add @univerjs/<package-name>@beta # Beta version
```

#### yarn

```bash
yarn add @univerjs/<package-name>@alpha # Alpha version
yarn add @univerjs/<package-name>@beta # Beta version
```

#### bun

```bash
bun add @univerjs/<package-name>@alpha # Alpha version
bun add @univerjs/<package-name>@beta # Beta version
```

Si encuentra algún problema o tiene algún comentario mientras usa las versiones alfa/beta, infórmelo al equipo de desarrollo de Univer a través de [Problemas de GitHub](https://github.com/dream-num/univer/issues).

Agradecemos sus comentarios sobre estas primeras versiones.

## Próximos pasos

* [Conceptos básicos](https://docs.univer.ai/es-ES/guides/sheets/getting-started/quickstart.md#basic-concepts) - Aprenda sobre los conceptos básicos de Univer.
* [Features](https://docs.univer.ai/es-ES/guides/sheets/features/core.md) - Aprenda sobre las características de Univer y cómo manipular datos.

***

[^1]: [https://blog.npmjs.org/post/110924823920/npm-weekly-5](https://blog.npmjs.org/post/110924823920/npm-weekly-5)

[^2]: [https://pnpm.io/npmrc#auto-install-peers](https://pnpm.io/npmrc#auto-install-peers)

[^3]: [https://github.com/yarnpkg/yarn/issues/1503](https://github.com/yarnpkg/yarn/issues/1503)

[^facade-entry]: Facade es la API de aplicación de los plugins registrados. Importar una entrada de Facade añade métodos a la API, pero no registra el plugin de la función.

[^mobile-ui-mode]: Un plugin de UI móvil selecciona controles táctiles y servicios móviles durante la inicialización. No detecta automáticamente el dispositivo ni cambia una instancia existente al redimensionar la ventana. Para cambiar de modo, conserve el estado del documento, destruya la instancia anterior e inicialice los plugins elegidos.
