npm安装本地模块的依赖项

时间:2017-08-25 04:43:38

标签: 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并使用local_module中的node_modules。但是,local_module需要安装gulp来运行预发布步骤,并且当从主项目运行npm install时,它不会安装local_module的依赖项,因此gulp isn&已安装,因此无法执行预先发布步骤。

有人问过像这样的几个问题,比如NPM doesn't install module dependencies,但很多问题已经过时了,而且有很多版本的npm,我无法得到明确的解决方案。

如何在预发布步骤之前让npm安装local_module的依赖项?我尝试为主项目添加预安装步骤,例如

"preinstall": "cd local_module && npm install"

但似乎npm尝试在运行主项目的预安装之前运行local_module的预发布步骤。我想要一个在npm install步骤中执行此操作的解决方案,而不是在此之前单独执行本地模块中的npm install

1 个答案:

答案 0 :(得分:0)

我找到了一个在不久的将来对我有用的解决方案。我将local_module的{​​{1}}更改为:

package.json

从主项目运行{ "scripts": { "prepublish": "npm install --ignore-scripts && gulp release" }, "devDependencies": { "gulp": "..." } } 时,预先发布步骤首先在npm install中运行,因此我强制预先发布以进行安装,以便gulp可用于执行实际的预发布步骤。然而,这并不理想。