#javascript #centos #preact
#javascript #centos #упреждающий
Вопрос:
Я запускаю проект preact preact build
и выполняю импорт следующим образом:
import PresenceToggleAlert from 'async?name=presenceToggleAlert!components/alerts/PresenceToggleAlert';
Мой фактический маршрут components/alerts/presenceToggleAlert
(без заглавной буквы P )
Я тестировал на macOS, ubuntu и Windows и работает отлично, но на данный момент на моем сервере jenkins корпус внезапно становится проблемой, выдавая ошибку следующим образом:
✖ ERROR ./components/alerts/alertContainer/index.js
Module not found: Error: Can't resolve 'components/alerts/PresenceToggleAlert' in './src/components/alerts/alertContainer'
@ ./components/alerts/alertContainer/index.js 39:0-103 131:22-41
@ ./components/framework/page/index.js
@ ./index.js
Кто-нибудь знает, в чем может быть проблема? Я не могу понять, почему это работает локально, но не на удаленной машине.
Мой сервер работает на CentOS 6.5 и имеет версию Jenkins 2.263.4
Ответ №1:
Файловая система Linux (в вашем случае CentOS) чувствительна к регистру, в то время как Windows не чувствительна к регистру. В случае macOS это зависит от того, что вы выберете во время установки.
Измените свой код на нижний регистр p
, так как именно там находится фактический файл. Так и должно быть
import PresenceToggleAlert from 'async?name=presenceToggleAlert!components/alerts/presenceToggleAlert';
Или, если вы хотите переименовать сам файл, то в окне Window вы не можете просто изменить регистр. Обычно Git игнорирует это, и фиксировать будет нечего. Зафиксируйте его в два этапа. Сначала измените файл на какое-либо временное имя. Затем выполните фиксацию. Снова переименуйте временный файл в фактический файл, который вы хотите, и снова выполните фиксацию. Кроме того, прежде чем вносить изменения, вы можете просто объединить свои коммиты в один коммит.