在多个文件中需要libs的正确方法

时间:2017-06-08 18:49:43

标签: javascript node.js ecmascript-6

我有两个文件 - 一个主代码执行,另一个只有一个类。

例如:

File_1:

const _ = require('underscore'),
CoolClass = require('CoolClass');

_.map(//something)

Files_2:

const _ = require('underscore');

class CoolClass(){
  constructor(){
    _.map(//something);
  }
}

要求图书馆的正确方法是什么?

我是否应该在两个文件中都需要它,我们应该只在主文件中要求它,然后将它传递给构造函数,如:

let cool_stuff = new CoolClass(_);

或者我应该在需要时通过它,所以:

const _ = require('underscore')(_);

谢谢!

1 个答案:

答案 0 :(得分:2)

是。在Node中,您始终将它包含在彼此独立的每个文件中。

加载库(无论是Node的本地require还是其他东西)通常会缓存模块,以避免从文件系统中多次重新加载它。

您这样做是为了拥有一个引用每个文件库的变量。

你可以在技术上做第二个选项,但是你通常只在必须导入然后以某种方式从该库中初始化一个对象,然后你传递初始化对象时才这样做。

像下划线这样的东西只是导入和使用,你只需要在每个。