npm安装具有公共依赖性的本地模块

时间:2019-06-05 22:17:45

标签: node.js npm dependencies local

我们正在开发依赖于SDK(我们也在开发)的Electron应用程序。通常,一旦SDK准备就绪,我们就会发布新版本并更新Electron应用程序以使用它。

但是我想对SDK进行本地更改,并让Electron应用程序使用它。事实证明这是有问题的。

我采用的方法是在电子应用目录中运行

npm install /path/to/sdk/moduleB

即根据{{​​3}}

的答案

但是有问题。 SDK的子模块向核心模块注册。即使实例可用。

当我使用本地路径到moduleB时,找不到核心模块。我没有在模块B中将core指定为依赖项。但是,如果我这样做,npm将在

下安装一个副本
/path/to/sdk/moduleB/node_modules/core

而不是重复使用已经在

定义的模块
./node_modules/core

即即使他们使用的是相同版本。

如果您了解npm如何解决不同版本的相同依赖关系,则这种行为(至少是重新安装core)在某种意义上是合理的。

how to specify local modules as npm package dependencies

https://medium.com/learnwithrahul/understanding-npm-dependency-resolution-84a24180901b

  

npm install:

     

在当前项目中将软件包作为符号链接安装在目录中。它的依赖项将在链接之前安装。如果位于项目的根目录中,则其依赖关系可能会像其他类型的依赖关系一样被提升到顶级node_modules。

但是似乎安装会创建一个符号链接,npm无法搜索回

./node_modules/core

解决此问题的唯一方法是复制

/path/to/sdk/moduleB

./node_modules/moduleB

有没有更好的解决方案,可以让我重复使用

./node_modules/core

依赖吗?

0 个答案:

没有答案