不必要地要求整个 module.exports 的缺点是什么?
What are the downsides of unnecessarily requiring the whole module.exports?
我只需要一个模块(6 个模块中的一个),但这样做会降低我需要的模块的可读性。例如,而不是这样做:
const { requestKrakenOrderbook } = require('./krakenUtils');
const orderbook = requestKrakenOrderbook();
我想这样做:
const krakenUtils = require('./krakenUtils')
const orderbook = krakenUtils.requestOrderbook()
像这样要求整个模块有什么缺点?
这个呢?
const getKrakenOrderbook = require('./krakenUtils').getOrderbook
没有缺点。 CommonJS 模块在 require
上进行评估,整个模块导出通常被缓存,因此在性能或内存占用方面没有显着差异。
根据模块导出的内容,将整个模块存储到变量并将其用作命名空间可能有用或无用:
const { get } = require('./foo');
// 200 lines below
let result = get(); // what in the world we've got?..
对比
const foo = require('./foo');
// 200 lines below
let result = foo.get(); // ah, we've got foo
我只需要一个模块(6 个模块中的一个),但这样做会降低我需要的模块的可读性。例如,而不是这样做:
const { requestKrakenOrderbook } = require('./krakenUtils');
const orderbook = requestKrakenOrderbook();
我想这样做:
const krakenUtils = require('./krakenUtils')
const orderbook = krakenUtils.requestOrderbook()
像这样要求整个模块有什么缺点?
这个呢?
const getKrakenOrderbook = require('./krakenUtils').getOrderbook
没有缺点。 CommonJS 模块在 require
上进行评估,整个模块导出通常被缓存,因此在性能或内存占用方面没有显着差异。
根据模块导出的内容,将整个模块存储到变量并将其用作命名空间可能有用或无用:
const { get } = require('./foo');
// 200 lines below
let result = get(); // what in the world we've got?..
对比
const foo = require('./foo');
// 200 lines below
let result = foo.get(); // ah, we've got foo