javascript – 节点:需要模块内部功能?

前端之家收集整理的这篇文章主要介绍了javascript – 节点:需要模块内部功能?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在浏览Node中命令行实用程序的源代码,并看到以下代码.
function help() {
    var colors = require('colors');
    var package = require('../package');
    ....
    ....
}

我之前没有看到过要求以这种方式使用函数.我一直认为最好将它包含在文件的顶部.这是此程序的入口文件,此函数仅在特定情况下调用 – 但这些包在程序的其他位置使用.当我向代码的作者询问他的推理时,他只是说他“不想一次导入所有的库”.

这是好/坏的做法吗?通过不要求在模块顶部使用这些软件包,而只是在调用这些函数时,是否会对加载时间产生重大影响?

解决方法

更新:
我想这里有一个更好的答案:
Lazy loading in node.js

我的初步意见:
嗯,这是一个练习的问题,有些人喜欢它在顶部,而有些人喜欢懒惰.在我看来两者都很好,并且应该根据需要使用,所以我认为作者就在这里,因为在启动时加载一大堆库会使模块超载大部分从未使用过的东西,因此会增加加载时间.虽然按需加载库是一个同步操作,但如果我们将帮助方法看作一个实体,那么它将给出一个异步模块加载效果(见AMD,这是一种流行的模式).

如果您必须在特定情况下加载哪些库之间做出选择,例如,延迟加载也是一个很好的选择

var isOSX;
// some code here which finds if this is OSX
// then this
if (isOSX === true) {
  var platformHelper = require('supercoolosxhelper');
} else {
  var platformHelper = require('yetanothercoolhelper');
}

简而言之,你应该在你的代码中预测使用方法的概率是高还是中等,那么你应该要求在顶部,否则如果它很低那么如果需要的话需要模块就好了.

猜你在找的JavaScript相关文章