Как я могу изменить свой проект webpack так, чтобы он ссылался на саму себя, а не на относительный путь? - PullRequest
1 голос
/ 04 июня 2019

Я работаю над небольшим проектом React, который создается, а затем переносится в более крупное приложение. Чтобы было ясно, у меня нет прав или полномочий изменить то, что я собираюсь изложить. Приложение создается и развертывается так, как оно есть, и я не могу изменить то, как мой проект вписывается в более крупное приложение, частью которого оно является. Однако я могу внести незначительные улучшения в наши этапы сборки, которые подготовят наш проект к интеграции в родительское приложение.

Мой проект React для команд - это проект CRA, созданный с помощью веб-пакета. После создания приложения файлы CSS и JS, созданные в веб-пакете, сохраняются и размещаются в Azure. После завершения этой части развертывания другое приложение создает файл load.js, на который ссылаются и который используется в основных приложениях React index.html, для извлечения нашего кода. Чтобы уточнить, наши файлы размещаются на сервере Azure, домен которого отличается от основного приложения.

В какой-то момент в процессе настройки нашего небольшого проекта для работы в основном приложении React в файле main.[hash].js была обнаружена ошибка, которая не позволяла ему работать должным образом. В частности, существует проблема со следующей строкой:

u.src=e.p+"static/js/"+({}[t]||t)+"."+{0:"bc79965c"}[t]+".chunk.js";

Чтобы заставить наше приложение работать в dev (и, в конечном итоге, в рабочей среде), нам пришлось создать шаг развертывания, который ищет в main.[hash].js файле "u.src=e.p" и заменяет его на "u.src={insert the root of our hosted project files from Azure}".

Однако сегодня я дополнительно проверил код main...js, чтобы попытаться выяснить точку переменной e.p. Я заметил, что webpack определяет e.p как просто "/" или ожидаемый корень проекта. Код нарушителя пытается получить значение для root, чтобы найти соответствующий файл chunk.js, который должен быть связан с файлом main.js. В нашем случае chunk.js не находится в корневой папке, поскольку ни он, ни наш основной файл не размещены в статической папке родительского проекта React.

Мой вопрос прост - в конфигурационном файле веб-пакета (или другого), есть ли какой-нибудь способ, которым я могу указать, каким должен быть корневой путь при создании этих файлов? В частности, есть ли способ переопределить, какое значение хранится в минимизированном значении e.p нашего main...js файла, выведенного веб-пакетом, чтобы он предоставил полный URL-адрес, который я могу указать?

Кроме того, я избавлюсь от длинного объяснения, но вывод нашего приложения в блоке <iframe /> невозможен. Это не правдоподобное решение в нашем контексте.

ЗАМЕЧАНИЯ ПО ОТВЕТУ на Мурило Круз

Я уже знал о свойстве "homepage": "http://www.myhomepage.com/relativePath", но это не решение. Это используется для добавления относительного пути к процессу. Конечно, я попытался добавить наш веб-адрес в свойство пакета homepage, но это не решило проблему.

1 Ответ

0 голосов
/ 04 июня 2019

На самом деле, в документации есть раздел, в котором указано, как построить ваш проект create-реагировать-приложение точно так, как вы сказали.

Вам просто нужно добавить свойство в package.json вашего корня проекта create-реакции-приложения:

"homepage": "http://mywebsite.com/relativepath",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...