我在使用本地模块的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
。