diff --git a/.changeset/clever-papayas-flash.md b/.changeset/clever-papayas-flash.md new file mode 100644 index 00000000..fd4f4114 --- /dev/null +++ b/.changeset/clever-papayas-flash.md @@ -0,0 +1,10 @@ +--- +'arui-scripts': major +--- + +1. Удалено подключение полифилов из arui-feather. +2. arui-feather удален из списка `serverExternalsExemptions`. + +Если вы по какой-то причине хотите вернуть это поведение: +1. Вы можете использовать настройку `clientPolyfillsEntry`, передав туда путь до файла с полифилами (`./node_modules/arui-feather/polyfills.js`) +2. Вы можете использовать оверрайд для `serverExternalsExemptions` и добавить туда regex для feather: `/^arui-feather/`. diff --git a/packages/arui-scripts/docs/modules.md b/packages/arui-scripts/docs/modules.md index 0825e47f..78c561b9 100644 --- a/packages/arui-scripts/docs/modules.md +++ b/packages/arui-scripts/docs/modules.md @@ -459,8 +459,7 @@ Webpack module federation делает абсолютно то же самое, - **---** Нет возможности использовать модуль в приложении, которое не использует webpack. Проблема изоляции стилей может быть решена с помощью [shadow dom](#shadow-dom), -или с помощью css modules. Но это накладывает некоторые ограничения либо на поддерживаемые браузеры (shadow dom), либо на -существующую кодовую базу (css modules должны использоваться везде, если у вас будет две версии arui-feather на странице - будет не очень приятно). +или с помощью css modules. Но это накладывает некоторые ограничения либо на поддерживаемые браузеры (shadow dom), либо на существующую кодовую базу (css modules должны использоваться везде). `compat` модули: - **+++** Встроенная изоляция стилей. Стили модуля не будут применены к хост-приложению, если только вы не захотите этого. diff --git a/packages/arui-scripts/docs/settings.md b/packages/arui-scripts/docs/settings.md index 49b1f054..a08e2ebe 100644 --- a/packages/arui-scripts/docs/settings.md +++ b/packages/arui-scripts/docs/settings.md @@ -142,7 +142,7 @@ export default settings; Имя файла для компиляции сервера, по умолчанию `server.js` #### clientPolyfillsEntry -Точка входа для полифилов. Будет подключаться до основной точки входа. По умолчанию подтягивает полифилы из arui-feather, если он установлен. +Точка входа для полифилов. Будет подключаться до основной точки входа. #### clientEntry Точка входа для клиентского приложения. По умолчанию `./src/index`. diff --git a/packages/arui-scripts/src/configs/server-externals-exemptions.ts b/packages/arui-scripts/src/configs/server-externals-exemptions.ts index 45905218..b95fe915 100644 --- a/packages/arui-scripts/src/configs/server-externals-exemptions.ts +++ b/packages/arui-scripts/src/configs/server-externals-exemptions.ts @@ -1,7 +1,6 @@ import { applyOverrides } from './util/apply-overrides'; export const serverExternalsExemptions = applyOverrides('serverExternalsExemptions', [ - /^arui-feather/, /^arui-ft-private/, /^arui-private/, /^alfaform-core-ui/, diff --git a/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts b/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts index 03b4c384..733afbfb 100644 --- a/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts +++ b/packages/arui-scripts/src/configs/util/__tests__/get-polyfills.tests.ts @@ -31,34 +31,4 @@ describe('getPolyfills', () => { expect(polyfills).toMatchObject([]); }); - - it('should add feather polyfills when original config is empty and feather polyfills is available', () => { - const appConfig: Partial = { - clientPolyfillsEntry: null, - }; - const requireResolve = jest.fn(() => 'feather-polyfills-path'); - - const polyfills = getPolyfills( - appConfig as AppConfigs, - requireResolve as unknown as typeof require.resolve, - ); - - expect(polyfills).toMatchObject(['feather-polyfills-path']); - expect(requireResolve).toHaveBeenCalledWith('arui-feather/polyfills'); - }); - - it('should not add feather polyfills when original config has any polyfills', () => { - const appConfig: Partial = { - clientPolyfillsEntry: [], - }; - const requireResolve = jest.fn(() => 'feather-polyfills-path'); - - const polyfills = getPolyfills( - appConfig as AppConfigs, - requireResolve as unknown as typeof require.resolve, - ); - - expect(polyfills).toMatchObject([]); - expect(requireResolve).not.toHaveBeenCalled(); - }); }); diff --git a/packages/arui-scripts/src/configs/util/get-polyfills.ts b/packages/arui-scripts/src/configs/util/get-polyfills.ts index 91e6b900..285937df 100644 --- a/packages/arui-scripts/src/configs/util/get-polyfills.ts +++ b/packages/arui-scripts/src/configs/util/get-polyfills.ts @@ -1,24 +1,12 @@ import { AppConfigs } from '../app-configs/types'; -// require.resolve вынесен как параметр функции для того, чтоб это можно было протестировать. -// на данный момент jest не дает возможности мокать require.resolve https://github.com/facebook/jest/issues/9543 -export function getPolyfills(config: AppConfigs, requireResolve = require.resolve) { +export function getPolyfills(config: AppConfigs) { const polyfills: string[] = []; if (config.clientPolyfillsEntry && Array.isArray(config.clientPolyfillsEntry)) { polyfills.push(...config.clientPolyfillsEntry); } else if (config.clientPolyfillsEntry) { polyfills.push(config.clientPolyfillsEntry); - } else { - // Для сохранения обратной совместимости нам надо добавлять полифилы из физера только тогда, когда пользователь - // не задал свои кастомные полифилы. - try { - const aruiPolyfills = requireResolve('arui-feather/polyfills'); - - polyfills.push(aruiPolyfills); - } catch (error) { - // just ignore it - } } return polyfills;