Я создал проект nextjs 14.1.4
на своей локальной машине с Windows, с помощью которого могу без проблем собрать npm run build
, но
когда я пытаюсь собрать свой рабочий сервер: Ubuntu 22.04.3 LTS с npm run build
, я получаю следующую ошибку:
./src/pages/about.tsx:7:20
Type error: Cannot find module '@/components/Layout' or its corresponding type declarations.
фрагмент кода компонента выглядит так:
import TestimonialPage from "@/components/about/TestimonialPage"
import Layout from "@/components/Layout"
import BaseButton from "@/components/base/BaseButton"
это обычный оператор импорта.
Я пытался изменить в своей tsconfig.json
строку с "moduleResolution": "bundler"
на "moduleResolution": "node"
, но без какого-либо эффекта.
Также попробовал изменить "paths"
:
"paths": {
"@/*": ["./src/*"]
}
к
"paths": {
"@/*": ["src/*"]
}
но безуспешно.
Что еще я могу сделать?
Да, все есть. Проверил, также несколько раз менял значения «путей» на рабочем сервере:/.
Обязательно (дважды) проверьте регистр в именах файлов. Это Layout
или layout
?
На своем локальном компьютере я изменил имя layout
на Layout
и зафиксировал изменения. Затем на рабочем сервере я все вытащил, но там я так и не проверил, изменилось ли имя файла. Это не так. На рабочем сервере файл по-прежнему назывался layout.tsx
. Итак, @JeppeHasseriis, спасибо за подсказку! :-)
Приятно слышать! Рад был помочь! :)
@JeppeHasseriis, спасибо. И если вы опубликуете ответ, то я с радостью приму :-)
Убедитесь, что ваш файл tsconfig.json правильно настроен для обработки разрешения модулей.
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
}
}
к сожалению, это не помогло.
Некоторые ОС чувствительны к регистру при импорте файлов. Обязательно перепроверьте, правильный ли путь
import Layout from "@/components/Layout" // capital letter
или
import Layout from "@/components/layout" // lower case
Попробуйте получить доступ к машине и проверить ее файловую систему. У вас там есть файл
tsconfig.json
? Содержит ли его контент"paths": ...
?