В чем разница между использованием require в консоли узла и использованием тега script в html - PullRequest
3 голосов
/ 03 февраля 2012

Я новичок в мире js, это действительно меня смущает, вчера я начал сотрудничать с underscore.js в своем коде, поэтому я начинаю пробовать его в среде REPL, я выбираю использовать консоль Node, япридумал var _ = require (./underscore.js), тогда все отлично работает.

Сегодня я пытаюсь встроить его в html с помощью тега <script>, кажется, мне не нужно вручную var _ = underscore, объект _ уже существует.

кто-то можетобъясните, почему и как использовать npm для глобальной установки подчеркивания и требовать его без указания местоположения файла (например, ruby ​​require Module)

1 Ответ

5 голосов
/ 03 февраля 2012

Основное отличие состоит в том, что использование тега script добавляет все глобальные привязки области действия файла к глобальной области, общей для all кода на странице. Когда вы пишете JavaScript на веб-сайте, все сценарии как будто бы находятся в одном файле.

С другой стороны, требование узла гораздо разумнее не заполняет глобальную область таким образом. Вместо этого он возвращает объект, который содержит все, экспортированное модулем; это в основном пространство имен модуля. Вот почему вы должны сделать _ = require('./underscore.js'). Это лучше, потому что вам не нужно беспокоиться о конфликте глобальных переменных разных файлов.

...