关系为单例"/>
Node.js依赖关系为单例
[我正在尝试创建自己的依赖项my-package
的npm包dependency-a
,并在同时依赖于cool-project
和my-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
如果myPackage
是cool-project
以外的模块,以上方法将起作用,但是由于我希望my-package
是独立的npm模块,因此当我尝试在cool-project
中进行链接时,它似乎依赖于dependency-a
的单独版本。
有没有一种方法可以创建一个npm模块,该模块可以修改第三方库的单个实例,并自动依赖于两个模块共享它们。我正在使用babel / webpack来构建my-package
,因此,如果有一种方法可以做到这一点,那对我也适用!
旁注:我知道我可以做一些类似的事情,例如从depA
返回my-package
,这对于我需要做的事情是行不通的。我正在尝试使用此示例的版本来为数据库创建连接中间件。
将dependency-a
添加为my-package
的package.json
文件中的对等项,
"peerDependencies": {
"dependency-a": "1.x"
}
现在,在安装my-package
时,如果在cool-project
中安装了另一个依赖项-a(与您声明的版本相同),则依赖项-a将不会自动安装。
更多推荐
Node.js依赖关系为单例
发布评论