私はORM Bookshelf.jsを使用するライブラリを作成しようとしています(もしそうなら、基本的にはBookshelf.jsの上にあるラッパー)。現在、Bookshelf.jsでは、プロジェクトのルートにある正しいデータベース(例:npm install mysql
)に接続できるように、ドライバのインストールを実行する必要があります。ノードの下位依存関係にライブラリを渡すにはどうすればよいですか?
Bookshelf.jsにはそれが必要なので、自分自身のライブラリにも必要ですが、Bookshelfインスタンスのnode_modulesフォルダには通常はないので、通常はError: Cannot find module 'mysql'
となります。私はそれが次のようになり構造を入力した場合
:
* New Project
** mysql
** LibThatUsesBookshelf
**** Bookshelf
今Bookshelf.jsは、おそらくこのような構造が必要です
:
* New Project
** LibThatUsesBookshelf
**** mysql
**** Bookshelf
私はまだ取得することができています方法はありますが最初の構造を使って作業している本棚?
P.S.私は説明が混乱するかもしれないことを知っているが、それは難しい問題であり、私はそれを説明する他の方法を持っていない。
はご提案いただきありがとうございます!私は現在これをやっていますが、ユーザーがこれを使用できるようにするために余分な依存関係を避けたいのです。また、プラグインの登録やこれを続行するのが難しい他の問題もあります。この問題を解決する他の方法はありますか? –
これは個人的な好みかもしれませんが、なぜこれが不利になるのか分かりません。モジュールを使用する前に、ユーザーが好きなように 'knex'と' bookshelf'をカスタマイズすることができます。これにより、モジュールのユーザーに依存関係も明らかになります。 – forrert
このソリューションを検討した後、代わりに本棚インスタンスを渡すことに戻ります。ご協力ありがとうございました! :)私はこの答えを正しいものとしてマークします。なぜなら、module.paths変数にパスを注入する必要のない最もクリーンなものですからです。 –