【发布时间】:2017-08-25 13:18:30
【问题描述】:
我在使用带有本地模块的 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 来运行 prepublish 步骤,并且在从主项目运行 npm install 时,它不会安装 local_module 的依赖项,因此没有安装 gulp,所以它可以t 执行预发布步骤。
类似这样的问题已经问过好几个了,比如NPM doesn't install module dependencies,但是很多都是旧的,npm 的版本太多了,我无法得到一个明确的解决方案。
如何让 npm 在预发布步骤之前安装 local_module 的依赖项?我尝试为主项目添加预安装步骤,例如
"preinstall": "cd local_module && npm install"
但似乎 npm 在运行主项目的预安装之前尝试运行 local_module 的预发布步骤。我想要一个解决方案,它可以在一个 npm install 步骤中执行此操作,而不是在此之前有一个单独的步骤在本地模块中执行 npm install。
【问题讨论】:
标签: npm