Skip to content

docs: typescript-esm#122

Merged
shadowusr merged 7 commits into
masterfrom
docs-tscriptesm
May 5, 2026
Merged

docs: typescript-esm#122
shadowusr merged 7 commits into
masterfrom
docs-tscriptesm

Conversation

@Nikolaengel
Copy link
Copy Markdown
Collaborator

No description provided.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 27, 2026

✅ Successfully deployed static

Comment on lines +45 to +98
#### @swc/core

Если вы хотите ускорить транспайлинг, используйте `@swc/core` вместо `ts-node`. SWC написан на Rust и значительно быстрее при больших объёмах кода.

```bash
npm install --save-dev @swc/core
```

Настройте `.swcrc`:

```json
{
"jsc": {
"parser": {
"syntax": "typescript",
"decorators": true
},
"target": "es2019"
},
"module": {
"type": "commonjs"
}
}
```

В конфиге Testplane укажите транспайлер явно:

```typescript
// .testplane.conf.ts
export default {
system: {
compilationCache: true,
},
};
```

#### esbuild

Ещё один вариант для ускорения транспайлинга — `esbuild`:

```bash
npm install --save-dev esbuild esbuild-register
```

В конфиге Testplane укажите транспайлер явно:

```typescript
// .testplane.conf.ts
export default {
system: {
// esbuild подключается через require-хук
},
};
```
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это невалидно.

Тут поведение такое:

  • Если в проекте установлен @swc/core, testplane автоматически будет использовать его для трайнспайлинга
  • Если нет, Testplane будет использовать esbuild, который поставляется в вместе с testplane

Посмотреть дефолтные настройки трайнспайлинга можно тут: https://github.com/gemini-testing/testplane/blob/master/src/utils/typescript.ts

Если автоматический трайнспайлинг не подходит из-за специфики проекта, можно передать переменную окружения TS_ENABLE=false, чтобы отключить автоматический трайнспайлинг и настроить самостоятельно. При ручной настройки можно передать нужный лоадер через опцию -r, --require, например -r ts-node/register.

Надо отметить, что это именно трайнспайлинг, без проверки типов. Проверку типов надо делать самостоятельно с помощью tsc и конфига.

};
```

#### Сравнение вариантов
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Табличка не особо полезная, я бы удалил.

`@swc/core` и `esbuild` не выполняют проверку типов во время запуска тестов. Для проверки типов используйте отдельную команду `tsc --noEmit`.
:::

## Работа с путями в конфиге
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

лучше "Работа с алиасами в импортах"

Comment on lines +201 to +218
#### Проверка настройки

После настройки вы можете использовать алиасы в тестах:

```typescript
// tests/auth.test.ts
import { LoginPage } from "@components/LoginPage";
import { createUser } from "@utils/factories";
import { userFixture } from "@fixtures/user";

describe("Auth", () => {
it("should login successfully", async ({ browser }) => {
const loginPage = new LoginPage(browser);
await loginPage.open();
// ...
});
});
```
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не особо полезная секция, я бы удалил


## Типизация конфига

Testplane экспортирует типы для конфигурации, что позволяет получить автодополнение и проверку типов.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эту секцию тоже надо схлопнуть до 1 маленького абзаца. Достаточно небольшой кусочек конфига с применением satisfies, и всё


## Расширение типов команд браузера

Если вы добавляете собственные команды через `browser.addCommand` или `element.addCommand`, TypeScript не будет знать об этих командах. Вам нужно расширить существующие интерфейсы через декларацию модуля (`Declaration Merging`).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Про кастомные команды тоже надо очень сильно сократить раздел. Буквально сказать, что такое есть и возможно один очень маленький пример. Остальное у нас рассказывается тут: https://testplane-ci.website.yandexcloud.net/testplane-docs/website-static/23649641933-511-1/ru/docs/v8/basic-guides/custom-commands/#%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D1%85-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4-%D1%81-typescript — надо оставить сюда ссылку.


## Работа с ESM

Testplane поддерживает ES Modules (ESM). Однако работа с ESM имеет ряд особенностей.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут тоже 2 страницы текста, а самого важного и нет — с какой версии Node поддержана работа с ESM. А диапазон версий: v22.0.0, v20.17.0 и новее (https://nodejs.org/api/modules.html#loading-ecmascript-modules-using-require)

Все остальное честно говоря звучит как рассказ, что такое ESM, который не особо по теме. Но если проект хочет его использовать, он это и так знает. Мы тут должны сказать, что надо настроить со стороны testplane. И единственный пункт тут это версия ноды.

Copy link
Copy Markdown
Member

@shadowusr shadowusr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В целом почти готово тоже к влитию. Предлагаю пофиксить мелкие замечания, докинуть английскую версию и вливать.

Круто!

Comment thread i18n/ru/docusaurus-plugin-content-docs/current/basic-guides/typescript-esm.mdx Outdated
Comment thread i18n/ru/docusaurus-plugin-content-docs/current/basic-guides/typescript-esm.mdx Outdated
Comment thread i18n/ru/docusaurus-plugin-content-docs/current/basic-guides/typescript-esm.mdx Outdated
Comment thread i18n/ru/docusaurus-plugin-content-docs/current/basic-guides/typescript-esm.mdx Outdated
Comment thread i18n/ru/docusaurus-plugin-content-docs/current/basic-guides/typescript-esm.mdx Outdated
@shadowusr shadowusr merged commit 82a10ce into master May 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants