npm模块仅在全局不可用时才在本地安装

时间:2016-07-21 06:19:52

标签: git npm install global local

我们有一个互相拥有多个git submodules的网络项目。对于功能测试,我们使用PhantomJSSelenium(一个用于本地开发,另一个用于CI部署和视觉回归测试)。

由于每个子模块都有自己的package.json,因此在引导过程中会多次安装PhantomJSselenium-standalone

我的问题是:我可以在全局安装这些巨型npm模块,并以某种方式让我的应用程序接收全局安装,并且只有在不可用时,尝试从缓存或远程仓库中提取?

类似的东西:

if(global_install){ continue } else{ npm install }

1 个答案:

答案 0 :(得分:2)

也许解决方案可以是RedSpar0w在此提出的建议:https://github.com/npm/npm/issues/2949#issuecomment-238703924

{
    "name": "Meh",
    "description": "Some Description",
    "scripts": {
        "preinstall": "(npm list someDependency -g && npm install otherDependency -g) || (npm list someDependency || npm install someDependency) && npm install otherDependency -g"
    }
}

检查全局是否安装了someDependency,然后全局安装otherDependency 否则检查本地是否安装了someDependency然后在本地安装someDependency,但是要么全局安装otherDependency,因为someDependency没有在本地安装

您可以根据需要使用它。