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

Chore/update dependencies #12

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

Conversation

OsirisAnubiz
Copy link
Member

No description provided.

@OsirisAnubiz
Copy link
Member Author

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

@Nelfimov
Copy link
Member

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

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

Copy link
Member

@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
Member Author

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

@OsirisAnubiz
Copy link
Member Author

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

@OsirisAnubiz
Copy link
Member 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
Member

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

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

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

@OsirisAnubiz
Copy link
Member 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