【发布时间】:2016-04-29 13:04:51
【问题描述】:
我最近一直在阅读一些关于 Node.js 的文档,试图让我开始从事一些个人工作。在这个过程中,一个念头不断地冒出来,但我并没有得到一个满意的答案。
到目前为止,在我看到的每一段代码中,都有相当多的 require()。我理解它的主要功能是包含模块。但似乎人们也用它来在他们的主文件中包含其他 Javascript 文件。 据我所知,在 Javascript 中没有合适的方法来做到这一点(如此处所述:How do I include a JavaScript file in another JavaScript file?)。
这是我的担忧;根据功能分隔文件显然有利于提高可读性。但是,由于必须通过打开 Javascript 文件等来获取信息,因此 require() 是否会大大减慢程序的速度?如果是这样,在 Web 应用程序中,这种差异是否足以令人担忧?
在提交版本之前编写一个自动化组装过程的程序以获取单个文件(或至少一个更单一的文件)不是更谨慎吗?
【问题讨论】:
-
是的,主要是开发版和发布版的区别。您可以在开发时保持代码干净整洁,当您准备好发布时,将其打包并在完成后将缩小版本发送到测试/生产服务器;)顺便说一句,您链接到的问题来自 2009,js从那时起,技术已经发生了很大变化,现在有了 commonjs、webpack、gulp、grunt……你可以为你的 javascript 项目拥有一个干净整洁的代码库
-
afaik 所需模块由节点缓存,因此我认为不会因多次
require调用而导致性能大幅下降 -
@VsevolodGoloviznin 是的,模块被缓存:fredkschott.com/post/2014/06/require-and-the-module-system
-
FWIW 节点中的模块缓存不仅仅是缓存文件。所有模块都是单例的。因此它们只编译和执行一次。这很好,因为如果你在 node.js 中需要一个单例,你不需要写任何东西。
module.exports对象是一个单例。
标签: javascript node.js