#javascript #reactjs #npm #webpack #rollup
#javascript #reactjs #npm #webpack #накопительный
Вопрос:
Я создал библиотеку JS пользовательского интерфейса, package.json
все в порядке, я связываю ее с webpack
, и она отлично работает в npm
(прекрасно сохраняется в node_modules/library
каталоге).
Тем не менее, я хотел бы сделать некоторые вещи настраиваемыми с помощью файла конфигурации. Допустим, в моей библиотеке есть Box
компонент React (он отображает квадрат размером 100×100 с цветом фона):
// Box.js
export default function(props) {
return <div style={{
backgroundColor: props.color,
width: "100px",
height: "100px"
}}>
{props.children}
</div>;
}
Я хотел бы предоставить возможность добавить файл конфигурации, чтобы цвет фона был выбран пользователем по умолчанию.
Итак, пользователь моей библиотеки создает конфигурационный файл (назовем его library.config.js
) в корневом каталоге своего проекта, и этот файл имеет sth, подобный этому:
// library.config.js
const BoxBackgroundColor = 'green';
export { BoxBackgroundColor }
И если этот файл существует, библиотека знает об этом, и пользователь может просто использовать Box
вот так:
<Box />
и color
prop будет зеленым.
Как добиться такого результата?
Проблема в том, что когда я объединяю свою библиотеку, я не знаю, существует library.config.js
файл или нет. Эта информация доступна для пользователя моей библиотеки в проекте пользователя. Кажется, я хочу разрешить все операторы import
and require
в моей библиотеке, за исключением library.config.js
. Это исключение require
должно быть устранено на этапе объединения проекта пользователя (когда library.config.js
файл доступен).
Комментарии:
1. У меня также есть этот вопрос…. Вам удалось найти ответ?
2. Эй, @HectorRicardo, нет, у меня нет, и я все еще думаю, что было бы неплохо иметь. В моих вариантах использования я просто передаю значения конфигурации через контекст React.
3. Также нуждающийся в этом, кому-нибудь удалось решить это?