2015-05-04 3 views
4

Я использую Underscore.js в своем проекте. Почти все файлы имеют эту строку кода: var _ = require('underscore'). Функция require является синхронной, поэтому один и тот же файл загружается каждый раз, когда он используется. Правильно ли это делать? Не влияет ли это на производительность?Требуется один и тот же модуль в нескольких файлах

Вместо этого, можно ли определить глобальную переменную в файле app.js?

_ = require('underscore') 

Я читал, что вы не должны использовать глобальные переменные, но это, по-видимому, является допустимым прецедентом.

ответ

13

Из документации Node.js:

модули кэшируются после первого раза они загружены. Это означает, что каждый вызов, требуемый ('foo'), получит точно тот же объект, который был возвращен, если он разрешит тот же файл .

Несколько вызовов, требуемых ('foo'), могут не вызывать код модуля , выполняемый несколько раз. Это важная функция. С его помощью могут быть возвращены «частично обработанные» объекты, что позволяет загружать транзитивные зависимости , даже если они будут вызывать циклы.

Таким образом, множественные вызовы, требующие underscore, не повлияют на производительность, так как это будет загрузка кешированной версии модуля.
Источник: https://nodejs.org/api/modules.html

+1

Черт, я думаю, что я должен RTFM. Спасибо! – Elmo

 Смежные вопросы

  • Нет связанных вопросов^_^