в настоящие дни я где-то видел, что мы можем настроить node-js для выполнения загруженного модуля в глобальной области, я не могу найти, как это сделать сейчас.
Почему я спрашиваю?
У меня есть несколько устаревших файлов, которые определяют языковые утилиты, которые я хочу использовать как на сервере, так и на клиенте, однако многие из этих утилит определены как функции глобальной области видимости.
Например, у меня есть такие функции, как closure(fClosure)
, module(fModule)
и многие другие, которые просто упорядочивают ваш код для четкого определения, и такие утилиты, как $sb(arg,arg,arg)
, который является строителем строк, и т. Д.
Теперь эти утилиты определены в файле, подобном core.js
, и этот файл загружается в браузер как первая зависимость, и жизнь хороша.
Но требование наличия этого файла в корне помогает в тех местах, где он распространяется Array.prototype
, но определенные в нем функции не видны в других модулях.
(и, пожалуйста, избегайте обсуждения загрязнения или столкновения с другими библиотеками)
Я знаю, что это не соответствует спецификациям CommonJS ... но сейчас я просто пытаюсь использовать эти устаревшие коды без реорганизации всех кодов в CommonJS.
Я также узнал о RequireJS и красивой модели AMD, которую он предлагает, но он отвечает только о том, как запускать в браузере коды, написанные для node.js, а не наоборот.
Назначение глобальной переменной не будет работать, потому что это означает, что мне придется переписать все устаревшие библиотеки.
Я ищу способ заставить их работать в глобальном масштабе и оставить там все, что они объявляют, не переписывая их.
Итак, есть ли способ попросить узел требовать файл и запустить его в глобальной области видимости?