Я пытаюсь создать библиотеку, которая использует ORM Bookshelf.js (так что в основном это оболочка поверх Bookshelf.js, если хотите). Теперь Bookshelf.js требует, чтобы вы запускали установку драйвера, чтобы иметь возможность подключиться к правильной базе данных (например: npm install mysql
) в корне вашего проекта.Как передать библиотеку более низкую зависимость в узле?
Моя собственная библиотека также требует этого, так как Bookshelf.js требует его, но он продолжает говорить Error: Cannot find module 'mysql'
, что нормально, поскольку экземпляр Bookshelf не имеет зависимости mysql в своей папке node_modules.
Если я печатаю из структуры она будет выглядеть следующим образом:
* New Project
** mysql
** LibThatUsesBookshelf
**** Bookshelf
Теперь Bookshelf.js вероятно, требует такой структуры:
* New Project
** LibThatUsesBookshelf
**** mysql
**** Bookshelf
Есть ли способ, что я могу еще получить книжная полка, работающая с показанной первой структурой?
P.S. Я знаю, что объяснение может сбивать с толку, но это сложная проблема, и у меня нет другого способа объяснить это.
Спасибо за ваше предложение! В настоящее время я делаю это, но я хочу избежать дополнительной зависимости, чтобы пользователь мог использовать это. Есть также больше проблем с регистрацией плагинов и другими, что затрудняет мне работу. Есть ли другой способ решить эту проблему? –
Это может быть личный вкус, но я не понимаю, почему это было бы недостатком. Он позволяет пользователю настраивать 'knex' и' bookshelf' по своему вкусу перед использованием вашего модуля. Это также делает зависимости очевидными для пользователя вашего модуля. – forrert
Хорошо, рассмотрев это решение, я вернусь обратно к передаче экземпляра книжной полки вместо этого. Спасибо за помощь! :) Я буду отмечать этот ответ как правильный, поскольку он является самым чистым, который не требует ввода путей в переменную module.paths. –