最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Node.js依赖关系为单例

网站源码admin21浏览0评论

Node.js依赖关系为单例

Node.js依赖关系为单例

[我正在尝试创建自己的依赖项my-package的npm包dependency-a,并在同时依赖于cool-projectmy-package的某些项目dependency-a中使用。

cool-project
- dependency-a
- my-package
  - dependency-a

dependency-a:

export const someVar = 0;

我的包裹:

import depA from 'dependency-a'

const someFun = () => {
  depA.someVar = 1;
}

酷项目:

import depA from 'dependency-a';
import myPackage from 'my-package';

myPackage.someFun();
console.log(depA.someVar); // expected (desired) 1, actual 0

如果myPackagecool-project以外的模块,以上方法将起作用,但是由于我希望my-package是独立的npm模块,因此当我尝试在cool-project中进行链接时,它似乎依赖于dependency-a的单独版本。

有没有一种方法可以创建一个npm模块,该模块可以修改第三方库的单个实例,并自动依赖于两个模块共享它们。我正在使用babel / webpack来构建my-package,因此,如果有一种方法可以做到这一点,那对我也适用!

旁注:我知道我可以做一些类似的事情,例如从depA返回my-package,这对于我需要做的事情是行不通的。我正在尝试使用此示例的版本来为数据库创建连接中间件。

回答如下:

dependency-a添加为my-packagepackage.json文件中的对等项,

"peerDependencies": {
    "dependency-a": "1.x"
  }

现在,在安装my-package时,如果在cool-project中安装了另一个依赖项-a(与您声明的版本相同),则依赖项-a将不会自动安装。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论