К обсуждениям

Next.js перестал видеть tsconfig paths при --webpack: матрица bundler и TypeScript

Редакция VOne Технологии

Как локализовать Module not found после обновления Next.js, если path aliases исчезают только в сборке --webpack: контроль lockfile, bundler, TypeScript CLI и value import без массовой правки импортов.

Зафиксируйте ошибку и фактические версии

Сохраните первую строку Module not found, один неразрешённый alias, версию Next.js, Node, package manager и пакет, в который реально разрешается typescript по lockfile. Не публикуйте закрытые имена модулей; воспроизведите на нейтральном alias и небольшом value import в отдельной ветке или копии. Отметьте точную команду build и наличие флага --webpack. Ошибка type checker и ошибка bundler resolution могут выглядеть рядом, но относятся к разным этапам. Не меняйте tsconfig, package alias и bundler одновременно: сначала нужен снимок исходной комбинации.

Сравните два bundler на одной копии

Документация Next.js указывает, что Turbopack является bundler по умолчанию, а --webpack явно выбирает Webpack. Запустите одну и ту же минимальную сборку с текущей командой и с альтернативным bundler, если проект не использует несовместимые настройки. Сравните только статус resolution данного alias и первую ошибку; успешная альтернативная сборка не является основанием менять production pipeline. Если обе сборки падают одинаково, bundler не разделяет симптом. Если ошибка остаётся только с --webpack, это полезная граница для issue, но не доказательство причины внутри Webpack.

Проверьте TypeScript CLI как отдельную переменную

Официальная страница TypeScript для Next.js объясняет, что TypeScript 7 пока не предоставляет JavaScript compiler API и для него предусмотрена настройка experimental.useTypeScriptCli. Запишите, используется ли обычный пакет typescript или alias на будущую ветку, и какое значение CLI-настройки фактически действует. Не переключайте production-зависимость ради теста; соберите маленькую копию lockfile и проверьте одну комбинацию по внутренней политике проекта. Различие между type-only и value import тоже фиксируйте отдельно: удаляемый тип не проходит тот же путь bundler resolution, что исполняемый импорт.

Остановитесь до массовой переписи алиасов

Не заменяйте все aliases относительными путями и не добавляйте custom webpack config, пока минимальная матрица не показывает нужный слой. В пакет для Next.js включите укороченный tsconfig с одним paths, package manifest без токенов registry, lockfile-фрагмент версии, две команды build и результаты bundler × TypeScript. Закрытые названия пакетов и внутренние пути замените нейтральными. Если временная сборка возможна только на другой версии, оформите это как подтверждённый контроль в отдельной ветке, а не как универсальный rollback. Issue свежий и может быть переоценён разработчиками, поэтому сохраняйте точную комбинацию.

Материал подготовлен редакцией VOne с применением ИИ для build-матрицы; роли TypeScript CLI и --webpack сверены по Next.js Docs, конкретная комбинация issue не обобщена.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.