2013-11-15 47 views
7

我有一個與sqlite3包的依賴關係。可以選擇添加到npm package.json依賴關係嗎?

默認情況下,安裝時,sqlite3軟件包會下載並使用預打包版本的sqlite3引擎。這可以使用sqlite3的擴展時,所以與安裝它的選項有時是一個問題:

npm install --build-from-source --sqlite=/path/to/sqlite sqlite3 

兩個「--build的從源代碼」和「--sqlite」是由該處理選項sqlite3包。

現在我怎麼能告訴package.json安裝我的依賴與這些選項?

"dependencies": { 
    "sqlite3": "*" 
} 

很顯然,我得到相當於

npm install sqlite3 

,但我不能找到一種方法來強制爲sqlite3的包--build的從源代碼和--sqlite選項

回答

6

另一種方法是使用scripts成員並在預安裝或安裝後掛接安裝腳本:

"scripts": { 
    "preinstall": "npm install --build-from-source --sqlite=/path/to/sqlite sqlite3" 
}, 
+0

不理想,因爲現在「npm shrinkwrap」崩潰,因爲sqlite3不再被npm認爲是依賴項;但因爲它在開發過程中完成了工作而被接受。 –

+0

注意:可以通過將依賴關係添加到依賴項中來欺騙「npm shrinkwrap」。該模塊beeing預裝,依賴關係:不重新安裝 –