Node.JS如何处理重复的传递依赖?

时间:2015-03-25 18:44:36

标签: javascript node.js node-modules

如果我的问题天真,我道歉。在完全公开中,我对Node.JS和JavaScript一般都是相对较新的。我希望有人可以了解Node.JS如何处理重复的,可能是传递的依赖项?甚至不是全局命名空间或任何类型的冲突,或同一模块的不同版本(例如,应用程序中其他地方的v0.1与v0.2),更多的是在可能的情况下保持智能和高效。例如:

  • Node是否有足够的智能,以便在您的modules文件夹中没有相同版本的库的多个副本?每个所需版本的带有符号链接的东西,或类似的东西,指向每个依赖于该模块版本的模块的代码?
  • 在运行时将重复模块加载到内存方面怎么样?如果模块x的v0.1已经加载到内存中,如果某些其他依赖模块出现需要该模块的相同版本,代码是否会被重新加载到内存中,或者Node是否足够智能以查看该代码是已加载并重新使用它?在这方面,Node如何使用沙盒?

谢谢!

1 个答案:

答案 0 :(得分:1)

Node.js没有版本概念。 require()函数将其参数解析为.js文件的完整路径,并按文件名缓存它们。

您可能会问 npm 如何安装模块;这取决于您安装它们的顺序。

你可以运行npm dedup来做好事。