Я только что закончил читать эту статью на модулях Javascript. Я могу понять, что модули CommonJS синхронно загружаются, а модули AMD асинхронно загружаются.
То, что я не понимаю, заключается в том, что как модуль может стать магически синхронным, если я напишу его в формате CommonJS или как он станет волшебным асинхронным, если я напишу его в формате AMD. я В среднем javascript не имеет ключевого слова define
или require
. Все они - спецификации, а не библиотеки.
Я имею в виду, что поведение загрузки модуля зависит от загрузчика модуля, а не от того, как модуль структурирован. И если это так, то зачем следовать шаблону кодирования для разных типов модулей?
Я согласен с предположением, что все библиотеки в мире NodeJS синхронно загружаются независимо от того, в каком формате они записаны. И все модули в пространстве браузера загружаются асинхронно.
Если мое предположение верно, тогда почему существует спецификация для UMD? Я имею в виду, если script загружается на основе среды, в которой он присутствует, то зачем создавать спецификацию для загрузки универсального модуля?
Может кто-нибудь помочь мне с этой путаницей?