我在使用本地模塊的npm時遇到問題。我的項目的結構是這樣的:npm安裝本地模塊的依賴關係
package.json
local_module/
- package.json
- gulpfile.json
gulpfile.js
主要項目的package.json
基本上是:
{
"dependencies": {
"local_module": "file:local_module"
},
"devDependencies": {
"gulp": "..."
}
}
本地模塊的package.json
基本上是:
{
"scripts": {
"prepublish": "gulp release"
},
"devDependencies": {
"gulp": "..."
}
}
我的本意是讓我的項目模塊通過保持local_module
作爲它自己的包,用作主項目的依賴項。我想在主項目中運行npm install
,並從node_modules
使用local_module
。但是,local_module
需要gulp
才能運行預發佈步驟,並且在主項目中運行npm install
時,它不會安裝local_module
的依賴關係,因此未安裝gulp,因此無法執行預發佈步驟。
這樣的幾個問題已經被問到,例如NPM doesn't install module dependencies,但很多都是舊的,並且有太多的npm版本,我無法得到明確的解決方案。
如何在預發佈步驟之前讓npm安裝local_module
的依賴關係?我嘗試爲主項目添加一個預安裝步驟,例如
"preinstall": "cd local_module && npm install"
但似乎NPM試圖運行預安裝爲主營項目之前運行的local_module
的prepublish一步。我想要一個解決方案,它將在一個npm install
步驟中執行此操作,而不是在此之前執行單獨的步驟,以在本地模塊中執行npm install
。