Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(docs) Перевод Modules #171

Merged
merged 9 commits into from
Jun 13, 2024
64 changes: 32 additions & 32 deletions docs/7.migration/20.module-authors.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
---
title: Modules
description: 'Learn how to migrate from Nuxt 2 to Nuxt 3 modules.'
title: Модули
description: 'Изучите как мигрировать модули с Nuxt 2 на Nuxt 3'
---

## Module Compatibility
## Совместимость модулей

Nuxt 3 has a basic backward compatibility layer for Nuxt 2 modules using `@nuxt/kit` auto wrappers. But there are usually steps to follow to make modules compatible with Nuxt 3 and sometimes, using Nuxt Bridge is required for cross-version compatibility.
Nuxt 3 имеет базовый слой обратной совместимости для модулей Nuxt 2 с использованием автоматических оберток `@nuxt/kit`. Однако, обычно требуются шаги для обеспечения совместимости модулей с Nuxt 3, и иногда - для кросс-версионной совместимости - требуется использовать Nuxt Bridge.

We have prepared a [Dedicated Guide](/docs/guide/going-further/modules) for authoring Nuxt 3 ready modules using `@nuxt/kit`. Currently best migration path is to follow it and rewrite your modules. Rest of this guide includes preparation steps if you prefer to avoid a full rewrite yet making modules compatible with Nuxt 3.
Мы подготовили [Отдельное руководство](/docs/guide/going-further/modules) по созданию готовых к Nuxt 3 модулей с использованием `@nuxt/kit`. В настоящее время лучшим путем миграции является следование этому руководству, чтобы переписать ваши модули. Оставшаяся часть этого руководства включает в себя шаги подготовки, если вы предпочитаете избежать полной переписи, но при этом сделать модули совместимыми с Nuxt 3.

::tip{icon="i-ph-puzzle-piece-duotone" to="/modules"}
Explore Nuxt 3 compatible modules.
Изучите модули, совместимые с Nuxt 3.
::

### Plugin Compatibility
### Совместимость плагинов

Nuxt 3 plugins are **not** fully backward compatible with Nuxt 2.
Плагины Nuxt 3 имеют **не** полностью обратную совместимость с Nuxt 2.

:read-more{to="/docs/guide/directory-structure/plugins"}

### Vue Compatibility
### Совместимость с Vue

Plugins or components using the Composition API need exclusive Vue 2 or Vue 3 support.
Плагины или компоненты, использующие Composition API, требуют исключительной поддержки Vue 2 или Vue 3.

By using [vue-demi](https://github.com/vueuse/vue-demi) they should be compatible with both Nuxt 2 and 3.
Используя [vue-demi](https://github.com/vueuse/vue-demi), они должны быть совместимы с Nuxt 2 и 3.

## Module Migration
## Миграция модулей

When Nuxt 3 users add your module, you will not have access to the module container (`this.*`) so you will need to use utilities from `@nuxt/kit` to access the container functionality.
Когда пользователи Nuxt 3 добавляют ваш модуль, у вас не будет доступа к контейнеру модуля (`this.*`), поэтому вам необходимо использовать утилиты из `@nuxt/kit`, чтобы получить доступ к функционалу контейнера.

### Test with `@nuxt/bridge`
### Тестирование с `@nuxt/bridge`

Migrating to `@nuxt/bridge` is the first and most important step for supporting Nuxt 3.
Миграция к `@nuxt/bridge` является первым и самым важным шагом для поддержки Nuxt 3.

If you have a fixture or example in your module, add `@nuxt/bridge` package to its config (see [example](/docs/bridge/overview#update-nuxtconfig))
Если у вас есть фикстура или пример в вашем модуле, добавьте пакет `@nuxt/bridge` в его конфигурацию (см. [пример](/docs/bridge/overview#update-nuxtconfig))

### Migrate from CommonJS to ESM
### Миграция из CommonJS в ESM

Nuxt 3 natively supports TypeScript and ECMAScript Modules. Please check [Native ES Modules](/docs/guide/concepts/esm) for more info and upgrading.
Nuxt 3 нативно поддерживает TypeScript и модули ECMAScript. Пожалуйста, проверьте [Native ES Modules](/docs/guide/concepts/esm) для получения дополнительной информации и обновления.

### Ensure Plugins Default Export
### Обеспечение экспорта плагинов по умолчанию

If you inject a Nuxt plugin that does not have `export default` (such as global Vue plugins), ensure you add `export default () => { }` to the end of it.
Если вы внедряете плагин Nuxt, который не имеет `export default` (например, глобальные плагины Vue), убедитесь, что вы добавили `export default () => { }` в конец файла.

::code-group

Expand All @@ -65,30 +65,30 @@ export default () => { }

::

### Avoid Runtime Modules
### Избегайте Runtime модулей

With Nuxt 3, Nuxt is now a build-time-only dependency, which means that modules shouldn't attempt to hook into the Nuxt runtime.
В Nuxt 3 сам Nuxt теперь является зависимостью только во время сборки, что означает, что модули не должны пытаться подключиться к среде выполнения Nuxt.

Your module should work even if it's only added to [`buildModules`](/docs/api/nuxt-config#runtimeconfig) (instead of `modules`). For example:
Ваш модуль должен работать даже в том случае, если он добавлен только в [`buildModules`](/docs/api/nuxt-config#runtimeconfig) (а не в `modules`). Например:

- Avoid updating `process.env` within a Nuxt module and reading by a Nuxt plugin; use [`runtimeConfig`](/docs/api/nuxt-config#runtimeconfig) instead.
- (*) Avoid depending on runtime hooks like `vue-renderer:*` for production
- (*) Avoid adding `serverMiddleware` by importing them inside the module. Instead, add them by referencing a file path so that they are independent of the module's context
- Избегайте обновления `process.env` внутри модуля Nuxt и чтения его с помощью плагина Nuxt. Вместо этого используйте [`runtimeConfig`](/docs/api/nuxt-config#runtimeconfig).
- (*) Избегайте зависимости от хуков runtime, таких как `vue-renderer:*` для продакшена
- (*) Избегайте добавления `serverMiddleware` путем импорта их внутри модуля. Вместо этого добавляйте их с помощью ссылки на путь к файлу, чтобы они были независимы от контекста модуля.

(*) Unless it is for `nuxt dev` purpose only and guarded with `if (nuxt.options.dev) { }`.
(*) Пока это не предназначено только для целей `nuxt dev` и не защищено с помощью `if (nuxt.options.dev) { }`.

::tip
Continue reading about Nuxt 3 modules in the [Modules Author Guide](/docs/guide/going-further/modules).
Продолжайте читать о модулях Nuxt 3 в [Руководстве для авторов модулей](/docs/guide/going-further/modules).
::

### Use TypeScript (Optional)
### Используйте TypeScript (опционально)

While it is not essential, most of the Nuxt ecosystem is shifting to use TypeScript, so it is highly recommended to consider migration.
Хотя это и не является обязательным, большая часть экосистемы Nuxt переходит на использование TypeScript, поэтому рекомендуется рассмотреть возможность миграции.

::tip
You can start migration by renaming `.js` files, to `.ts`. TypeScript is designed to be progressive!
Вы можете начать миграцию, переименовав файлы `.js` в `.ts`. TypeScript разработан для постепенного внедрения!
::

::tip
You can use TypeScript syntax for Nuxt 2 and 3 modules and plugins without any extra dependencies.
Вы можете использовать синтаксис TypeScript для модулей и плагинов Nuxt 2 и 3 без каких-либо дополнительных зависимостей.
::
Loading