Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制不同的npm模块共享相同的依赖项_Javascript_Node.js_Npm - Fatal编程技术网

Javascript 强制不同的npm模块共享相同的依赖项

Javascript 强制不同的npm模块共享相同的依赖项,javascript,node.js,npm,Javascript,Node.js,Npm,对不起,我是新产品管理和前端开发的新手 我有一个库(a),它需要是一个单例,但有一个init来传递启动配置。我还有一个库B,它将库a作为依赖项。在我的web客户端中,我需要直接引用库A,也需要引用库B。我在web客户端中初始化库A 根据我的调查,我的web客户端和库B似乎正在使用库A的自己的副本,因此,由于库A仅作为一个单例工作,库B对库A的调用在未定义的情况下失败 library A library B |----library A web-client |----library A

对不起,我是新产品管理和前端开发的新手

我有一个库(a),它需要是一个单例,但有一个init来传递启动配置。我还有一个库B,它将库a作为依赖项。在我的web客户端中,我需要直接引用库A,也需要引用库B。我在web客户端中初始化库A

根据我的调查,我的web客户端和库B似乎正在使用库A的自己的副本,因此,由于库A仅作为一个单例工作,库B对库A的调用在
未定义的情况下失败

library A

library B
 |----library A

web-client
 |----library A
 |----library B
       |----library A

在我的web客户端库中,A和B在package.json中引用。我的问题是,有没有办法告诉库B使用web客户端直接引用的库a?

NPM 3及更高版本支持这一点

将安装一份
库A
,只要
库B
web客户端
中的
版本约束与
库B
web客户端
依赖项中的
库A
版本约束匹配,就可以使用该库

如果版本约束不匹配,
库B
web客户端将拥有自己的
库A
副本

如果不同时安装项目依赖项,则可以获取库A的多个副本

在这种情况下

npm dedupe
或删除
节点\u模块
,并使用重新安装依赖项

npm i

将有所帮助。

库B和web客户端的package.json中的库A版本是否相同?还有,你使用的是什么版本的npm?@DerekNguyen他们没有,但即使更新到相同的版本,我仍然有问题。estus
npm重复数据消除
命令完成了这一任务。谢谢