В Java существуют более строгие правила и стандарты в отношении организации вашего кода. Существует общепринятый стандарт именования папок (пакетов), файлов, переменных, методов и т. д. В JavaScript нет общепринятых стандартов. Поскольку стандарта нет, я время от времени много играю с организацией своего кода. Недавно я сделал полный рефакторинг организации кода и разделил свой код на большее количество папок. Кстати, это проект на основе AWS Lambda.

- src/jira/functions
   - event.ts
   - .....
- src/confluence/function
   - event.ts
   - .....

Как видите, у меня есть файл event.ts в обеих папках, созданных для Confluence и Jira. Я вообще не люблю повторять имя родительской папки снова при именовании файла, поэтому вместо jira/jira-event.ts и confluence/confluence-event.ts у меня есть файлы jira/event.ts и confluence/event.ts.

Для разработчиков, не привыкших к веб-разработке на JavaScript, это может показаться необычным, но это обычная практика в проектах на JavaScript. У вас может быть много файлов main.js или index.js в каждой папке.

При открытии файла WebStrom также показывает часть родительских папок, чтобы вы могли понять, какой файл event.ts вы редактируете, как показано на снимке экрана ниже.

Вот в чем проблема. Исходные карты работали нормально до этого рефакторинга. Это означает, что я мог поставить точку останова в одном из .ts-файлов, и отладчик остановится на этой строке, и я смог выполнить отладку в .ts-файле. После этого изменения я больше не мог устанавливать точки останова в файлах .ts, и единственный способ остановить отладчик — это поместить оператор debugger; в исходный файл. Также отладчик показывает соответствующий файл .js, а не файл .ts. Хотя это все еще работоспособно, я хотел понять, что не так. После некоторого расследования я заметил, что компилятор tsc создает event.js.map файлов, используя только идентификатор «event.js»:

Это приводило к тому, что отладчик WebStorm не мог найти соответствующий файл .ts. Как вы можете догадаться, переименование файлов в jira-event.ts и confluence-event.ts решило эту проблему. Я надеюсь, что эта информация поможет кому-то еще. С этого момента я вернусь к уникальному именованию файлов.