0
我想創建一個使用ORM Bookshelf.js的庫(如果你願意的話,基本上是一個封裝在Bookshelf.js的頂部)。現在Bookshelf.js要求您運行驅動程序安裝,以便能夠連接到項目根目錄中的正確數據庫(例如:npm install mysql
)。如何將庫傳遞給節點中較低的依賴項?
由於Bookshelf實例在其node_modules文件夾中沒有mysql依賴項,因此我自己的庫也需要這樣做,因爲Bookshelf.js需要它,但它一直說Error: Cannot find module 'mysql'
,這是正常的。
如果我打出來的結構,它是這樣的:
* New Project
** mysql
** LibThatUsesBookshelf
**** Bookshelf
現在Bookshelf.js可能需要這樣的結構:
* New Project
** LibThatUsesBookshelf
**** mysql
**** Bookshelf
有沒有辦法,我能仍然獲得方式顯示第一個結構的書架?
P.S.我知道這個解釋可能會讓人困惑,但這是一個很難的問題,我沒有別的辦法解釋它。
謝謝您的建議!我目前正在這樣做,但我想避免用戶能夠使用這個額外的依賴項。關於插件註冊和其他一些問題也有更多問題,這使我很難繼續這樣做。有沒有其他辦法可以解決這個問題? –
這可能是個人品味,但我不明白爲什麼這會是一個缺點。它可以讓用戶在使用模塊之前自定義'knex'和'bookshelf'。這也使得你的模塊的用戶明顯依賴它。 – forrert
好的,在考慮這個解決方案之後,我會回到傳遞bookshelf實例。感謝您的幫助! :)我將這個答案標記爲正確的,因爲它是最乾淨的一個,不需要將路徑注入到module.paths變量中。 –