Как создать библиотеку npm с файлом конфигурации JS и веб-целью? - PullRequest
0 голосов
/ 19 марта 2019

Я создал 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 доступен).

...