Производственный сервер не может пройти сборку npm run

Я создал проект 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/*"]
    }

но безуспешно.

Что еще я могу сделать?

Попробуйте получить доступ к машине и проверить ее файловую систему. У вас там есть файл tsconfig.json? Содержит ли его контент "paths": ...?

Tal Rofe 24.06.2024 22:25

Да, все есть. Проверил, также несколько раз менял значения «путей» на рабочем сервере:/.

Dariusz Legizynski 24.06.2024 23:00

Обязательно (дважды) проверьте регистр в именах файлов. Это Layout или layout?

Jeppe Hasseriis 25.06.2024 13:47

На своем локальном компьютере я изменил имя layout на Layout и зафиксировал изменения. Затем на рабочем сервере я все вытащил, но там я так и не проверил, изменилось ли имя файла. Это не так. На рабочем сервере файл по-прежнему назывался layout.tsx. Итак, @JeppeHasseriis, спасибо за подсказку! :-)

Dariusz Legizynski 25.06.2024 16:21

Приятно слышать! Рад был помочь! :)

Jeppe Hasseriis 25.06.2024 20:50

@JeppeHasseriis, спасибо. И если вы опубликуете ответ, то я с радостью приму :-)

Dariusz Legizynski 27.06.2024 13:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Убедитесь, что ваш файл tsconfig.json правильно настроен для обработки разрешения модулей.

{
   "compilerOptions": {
        "baseUrl": ".",
        "paths": {
          "@/*": ["src/*"]
        }
      }
    }

к сожалению, это не помогло.

Dariusz Legizynski 25.06.2024 15:47
Ответ принят как подходящий

Некоторые ОС чувствительны к регистру при импорте файлов. Обязательно перепроверьте, правильный ли путь

import Layout from "@/components/Layout" // capital letter

или

import Layout from "@/components/layout" // lower case

Другие вопросы по теме