我们正在开发依赖于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
依赖吗?