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

BREAKING CHANGE: type module #552

Merged
merged 2 commits into from
Nov 14, 2024
Merged

Conversation

SevereCloud
Copy link
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
Copy link

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
Copy link

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
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
Contributor Author

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

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

@SevereCloud SevereCloud merged commit 880ce75 into master Nov 14, 2024
3 checks passed
@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