Есть ли способ условно изменить основной входной файл в package.json? - PullRequest
0 голосов
/ 30 апреля 2019

В настоящее время я разрабатываю два приложения в двух разных проектах: библиотеку компонентов React для использования в качестве системы проектирования и веб-приложение React для отображения страниц с использованием компонентов из системы проектирования.

Внутри моего веб-приложения я импортирую компоненты следующим образом:

import { Button } from 'designsystem'

Внутри package.json из designsystem мои main точки входа указывают на /src/index.js, где все мои компоненты экспортируются как модуль ES6. Когда я занимаюсь разработкой, это нормально, потому что когда я обновляю компонент в designsystem, он отражается в веб-приложении, и это желаемое поведение.

Хотя, когда я пытаюсь создать свое веб-приложение, оно работает, только если я указываю запись main в designsystem на папку dist, которая содержит связанный файл со всеми компонентами в виде UMD. Таким образом, я не вижу изменений компонентов внутри моего веб-приложения, если только я не соберу все заново.

Я уже пытался условно вернуть модуль компонентов или содержимое dist в /src/index.js, чтобы указать на правильное содержимое. Но ничего не сработало.

У меня такой вопрос: есть ли способ условно изменить запись main в package.json? Если нет, есть ли другое решение для этого?


РЕДАКТИРОВАТЬ: Когда main указывает на источник, я могу нормально работать с ним, используя npm link. Моя проблема возникает, когда я пытаюсь собрать родителя, если я не переключаю main в папку сборки.

1 Ответ

1 голос
/ 30 апреля 2019

«Основная» запись в вашем package.json заслуживает указания на папку сборки:

Основное поле - это идентификатор модуля, который является основной точкой входа в ваш программа. То есть, если ваш пакет называется foo, а пользователь устанавливает он, а затем требует ("Foo"), то экспорт вашего основного модуля объект будет возвращен.

Это должен быть идентификатор модуля относительно корня вашего пакета папка.

Для большинства модулей имеет смысл иметь основной скрипт и часто не намного.

Ref: https://docs.npmjs.com/files/package.json#main

Корень вашего пакета не имеет ничего общего с вашим приложением dev . Вы должны использовать npm link при разработке и оставить без изменений свой основной указатель на папку сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...