Skip to content

BREAKING CHANGE: type module#552

Merged
SevereCloud merged 2 commits intomasterfrom
SevereCloud/fix/type-module
Nov 14, 2024
Merged

BREAKING CHANGE: type module#552
SevereCloud merged 2 commits intomasterfrom
SevereCloud/fix/type-module

Conversation

@SevereCloud
Copy link
Copy Markdown
Contributor

@SevereCloud SevereCloud commented Sep 21, 2024

Описание

Node.JS не работает с vkjs в режиме esmodules, так как все js файлы считаются cjs

Изменения

  • Обозначаем что все .js файлы являются ES модулями
  • Полностью резолвим путь для поддержки NodeJS
  • Перевел jest на ts

@SevereCloud SevereCloud marked this pull request as draft September 21, 2024 08:35
@SevereCloud SevereCloud force-pushed the SevereCloud/fix/type-module branch from e76c203 to 6ca13ca Compare September 21, 2024 08:37
@SevereCloud SevereCloud changed the title fix: type module BREAKING CHANGE: type module Sep 21, 2024
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Sep 21, 2024

size-limit report 📦

Path Size
JS 16.66 KB (-7.95% 🔽)
JS (gzip) 0 B (-100% 🔽)
JS (brotli) 0 B (-100% 🔽)
JS ES6 0 B (-100% 🔽)
JS with querystring only import (no tree shaking) 0 B (-100% 🔽)
JS ES6 with querystring only import (tree shaking) 543 B (0%)
JS with leadingZero only import (no tree shaking) 0 B (-100% 🔽)
JS ES6 with leadingZero only import (tree shaking) 26 B (0%)
JS ES6 with decodeHTMLEntities only import (tree shaking) 444 B (0%)
JS ES6 with decodeHTMLFullEntities only import (tree shaking) 9.88 KB (0%)

@SevereCloud SevereCloud marked this pull request as ready for review September 21, 2024 08:39
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Oct 5, 2024

PR закрыт из-за отсутствия активности в течение последних 14 дней. Если это произошло по ошибке или изменения все ещё актуальны, откройте PR повторно.

@github-actions github-actions bot closed this Oct 5, 2024
@SevereCloud SevereCloud reopened this Nov 14, 2024
Copy link
Copy Markdown
Contributor

@inomdzhon inomdzhon left a comment

Choose a reason for hiding this comment

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

🔥 🚀

PS: CommonJS версия точно не нужна? думаю как зарезолвится пакет у пользователей @vkontekta/vkui, если поднимем версию пакета в "dependenices" до мажора

@SevereCloud
Copy link
Copy Markdown
Contributor Author

думаю как зарезолвится пакет у пользователей @vkontekta/vkui, если поднимем версию пакета в "dependenices" до мажора

Будет использоваться v1

@SevereCloud SevereCloud merged commit 880ce75 into master Nov 14, 2024
@SevereCloud SevereCloud deleted the SevereCloud/fix/type-module branch November 14, 2024 10:53
@inomdzhon inomdzhon assigned SevereCloud and unassigned SevereCloud Nov 14, 2024
inomdzhon added a commit to VKCOM/VKUI that referenced this pull request Nov 18, 2024
## Описание

В #7611 у пакета `packages/vkui` мы удалили поле `"main"`, но при этом `"type"` остался как `commonjs`.

Обнаружил это при тестировании `v7.0.0-beta.1` в стороннем репозитории при запуске **Jest**. Из-за `"type": "commonjs"`, он пытается обратиться к полю `"main"`, но так как его нет, тест падает с ошибкой `Cannot find module`. С `"type": "module"` такой проблемы не будет, т.к. уже будет обращаться к полю `"module"`.

## Изменения

Это повлекло за собой следующие изменения:

- ~`packages/vkui/shared.config.js`~ – переименование в `.mjs` не удалось из-за **react-styleguidist**, который не умеет в **ESM**, поэтому перенёс содержимое в корневой `shared.js`, который используется только в папке `/styleguide`
- `stylelint.config.mjs` – заменил импорты из `shared.config.js` на объявление путей прямо в файле
- `packages/vkui/cssm/postcss.config.js` → `packages/vkui/cssm/postcss.config.cjs` – заменил импорты из `shared.config.js` на объявление путей прямо в файле
- `packages/vkui/scripts/postcss.js` → `packages/vkui/scripts/postcss.cjs` – заменил импорты из `shared.config.js` на объявление путей прямо в файле, а также перенёс объявления `VKUI_TOKENS_CSS` и `generateScopedName`
- `packages/vkui/tsconfig.json` – упростил `include`, а то было точечное определение файлов
- `packages/vkui/.eslintrc.js` → `packages/vkui/.eslintrc.cjs`, иначе падает с ошибкой **ERR_REQUIRE_ESM**. Также обнаружилось, что в `@vkontakte/vkjs` не хватает поля `"exports"` (см. VKCOM/vkjs#552)
- `packages/vkui/rspack.styles.config.ts` → `packages/vkui/rspack.styles.config.mjs`, т.к. начал падать с ошибкой `ERR_UNKNOWN_FILE_EXTENSION`
- `packages/vkui/playwright-ct.config.ts` → `packages/vkui/playwright-ct.config.mjs`, т.к. **Playwright** хочет **ESM** синтаксис для `__dirname` и импортов **JSON**, что не соответствует нашему `tsconfig.json`, а отдельный `tsconfig.e2e.json` не завёлся. Также перенёс плагины из `scripts/postcss.cjs` прямо в конфиг, т.к. импорт `scripts/postcss.cjs` фризит запуск **Playwright**
- `packages/vkui/jest.config.ts` – добавляем `@vkontakte/vkjs` в `transformIgnorePatterns`, т.к. библиотека теперь полностью поставляется как ESM (VKCOM/vkjs#552).
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.

Отказ от cjs сборки

2 participants