Skip to content

Chore/update dependencies#12

Open
OsirisAnubiz wants to merge 14 commits intomasterfrom
chore/update-dependencies
Open

Chore/update dependencies#12
OsirisAnubiz wants to merge 14 commits intomasterfrom
chore/update-dependencies

Conversation

@OsirisAnubiz
Copy link

No description provided.

@OsirisAnubiz
Copy link
Author

@Nelfimov обязательно ли, чтобы в package.json было "type": "module"?
Из-за изменения на "type": "module" падают интеграционные тесты, не могу понять в чём дело довольно долго

@OsirisAnubiz OsirisAnubiz requested a review from Nelfimov October 21, 2024 11:26
@Nelfimov
Copy link
Contributor

@Nelfimov обязательно ли, чтобы в package.json было "type": "module"? Из-за изменения на "type": "module" падают интеграционные тесты, не могу понять в чём дело довольно долго

обязательно. Какая ошибка?

Copy link
Contributor

@Nelfimov Nelfimov left a comment

Choose a reason for hiding this comment

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

перевести на есм

@OsirisAnubiz
Copy link
Author

@Nelfimov перепутал вчера PR, прошу прощения, тут переведу на ESM

@OsirisAnubiz
Copy link
Author

@Nelfimov не перепутал, не проходят интеграционный тест для stack-trace. Там export const isWebpackEnv = typeof __webpack_require__ === 'function' это false. Пробовал, чтобы от import.meta зависило и не получилось

@OsirisAnubiz
Copy link
Author

OsirisAnubiz commented Oct 23, 2024

@Nelfimov не могу решить проблему. Что сделал:

  1. Поменял типы для двух пакетов на "type": "module" и изменил import-ы в файлах, чтобы они работали.
  2. Набираюyarn test integration.
  • Выходит ошибка: Cannot find module '../../src' from '/home/osiris/git-dir/atlantist/utils/packages/stack-trace/integration/fixtures/dist, чтобы её исправить поменял ../../src на ../../../src в simple.js.
  1. Набираю yarn test integration
    Вывод:
expect(received).toBeDefined()

Received: undefined

  50 |     const [repeatStringFrame, simpleFrame] = stackTrace.frames
  51 |
> 52 |     expect(repeatStringFrame.sourceMap).toBeDefined()
     |                                         ^
  53 |     expect(repeatStringFrame.sourceMap.payload.file).toEqual(
  54 |       expect.stringContaining('repeat-string/index.js')

Эта ошибка возникает из-за того, что не загружается sourceMap для фрейма.
Вот тут isWebpackEnv это false. В изначальной версии с commonJs эта переменная true, когда запускаешь тесты.

Чтобы исправить проблему поменял на, чтобы в итоге isWebpackEnv было true (проверил, действительно после этого true):

export const isWebpackEnv = typeof __webpack_require__ === 'function' || typeof __webpack_modules__ !== undefined
  1. Набираю yarn test integration. Вывод такой же как в предыдущем пункте.
    sourceMap всё равно не загружается.
    Это происходит из-за того что sourceMap в этой строчке это null:
const sourceMap = resolve(frame.file, __filename)

Изначальные значения первых двух frame.file, с которыми тесты проходили:

{    
  file: 'webpack-internal:///../../../../.yarn/berry/cache/repeat-string-npm-1.6.1-bc8e388655-10.zip/node_modules/repeat-string/index.js'
}  
{ file: 'webpack-internal:///./fixtures/simple.js' }

Текущие с теми из-за которых не проходят тесты:

{
  file: '/home/osiris/git-dir/atlantist/.yarn/berry/cache/repeat-string-npm-1.6.1-bc8e388655-10.zip/node_modules/repeat-string/index.js'
}
{ file: 'webpack-internal:///./fixtures/simple.js' }

Функция resolve возвращает null, если путь не начинается на webpack-internal://, поэтому понятно почему sourceMap для первого фрейма не загрузился не знаю в чём дело, но для второго тоже не загрузился, хотя frame.file у них одинаковый.

Попытался понять, почему там где есть правильный frame.file не грузиться тоже.
Это из-за того, что вот эта команда отрабатывает с ошибкой и в итоге возвращается null.

Не погу понять, почему у первого фрейма такой путь, а у второго не отрабатывает команда.

@Nelfimov
Copy link
Contributor

@OsirisAnubiz закинул свой коммит - там слегка продвинулся с ошибкой.

Перепроверь конфиг вебпака а так же в в каком формате он бандлит simple - если мы хотим остаться с require, то надо билдить .cjs. Можешь так же синхронизировать конфиг с нашим в atls/raijin.

На крайний случай для дебага - перепиши simple чтобы выводил какие файлы вокруг себя он видит.

@OsirisAnubiz
Copy link
Author

Отложу эту задачу чутка

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.

Обновление зависимостей stack-trace и webpack-source-map

2 participants