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