2017-01-05 6 views
11

Facebook предоставляет create-react-appcommand для создания приложений для реагирования. Когда мы запускаем npm run build, мы видим вывод в папке /build.Использовать пользовательскую сборку при использовании приложения create-react-app

НПМ запустить сборки

Строит приложение для производства в папку сборки. Он правильно пучки Реагируют в режиме производства и оптимизируют сборку для лучшего качества .

Строка минимизирована, и имена файлов включают хеши. Ваше приложение готово к развертыванию!

Как мы можем использовать пользовательскую папку вместо /build для вывода? Благодарю.

+0

посмотреть [вопрос] (https://stackoverflow.com/questions/44448851/how-do-i-change-src-folder-to-something- else-in-create-react-app/48590867 # 48590867) и попробуйте изменить 'build' на 'whatever'. Не пробовал. – nikrb

ответ

9

Вы не можете изменить имя папки выхода сборки с текущими параметрами конфигурации.

Кроме того, вы не должны. Это часть the philosophy behind react-create-app: они говорят Конвенция по конфигурации.

Если вам действительно нужно переименовать папку, я вижу два варианта:

  1. Сразу после процесса сборки заканчивается, написать команду, которая копирует содержимое папки сборки в другую папку, которую вы хотите. Например, вы можете try the copyfiles npm package, или что-нибудь подобное.

  2. Вы можете попробовать eject react-create-app и настроить конфигурацию.

    Если вас не устраивает инструмент сборки и выбор конфигурации, вы можете извлечь его в любое время. Эта команда удалит единичную зависимость от проекта.

    Вместо этого он скопирует все файлы конфигурации и переходные зависимости (Webpack, Babel, ESLint и т. Д.) Прямо в ваш проект, чтобы вы имели полный контроль над ними. Все команды, кроме eject, по-прежнему будут работать, но они будут указывать на скопированные сценарии, чтобы вы могли их настроить. На данный момент вы сами.

    Однако важно отметить, что это односторонняя операция. Как только вы выбрасываете, вы не можете вернуться! Вы потеряете все будущие обновления.

Поэтому я рекомендовал бы вам не использовать именование пользовательские папки, если это возможно. Попытайтесь придерживаться именования по умолчанию. Если нет, попробуйте # 1. Если он по-прежнему не работает для вашего конкретного случая использования, и у вас действительно нет вариантов - исследуйте №2. Удачи!

+0

Какое преимущество будет при копировании файлов при переименовании папки? – azium

+0

моя главная проблема заключалась в том, что это может вызвать проблемы, если какая-либо из других команд «реагировать-создавать-приложение» использует папку '/ build' для ввода. (пример: во время развертывания). Поэтому копирование - самый безопасный вариант, который я вижу. PS: Если вы не планируете использовать папку '/ build' по умолчанию для ввода, я согласен с вами - просто переименование будет делать тот же трюк. –

0

Вы можете обновить конфигурацию с небольшим хак под корневой директории:

  1. НПМ запустить Eject
  2. конфигурации/webpack.config.prod.js - строка 61 - путь изменение: __dirname + »./ ../ - ваш каталог choice-- '
  3. конфигурации/paths.js - строка 68 - обновление resolveApp (' ./-- вашей директории choice-- ')

заменить --Новости каталог по выбору - с каталогом папок, который вы хотите построить на

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

11

Корректировать package.json:

"build": "react-scripts build && mv build webapp" 
+1

Мне пришлось сделать это '' build ":" scripts-scripts build && rm -rf docs && mv build docs ", иначе после первого запуска он перемещает файл _into_ в папку docs вместо того, чтобы перезаписывать его. – TimoSolo