2013-02-23 4 views
3

Я довольно новичок в мире JavaScript (особенно когда речь идет о библиотеках). Многие из них говорят вам использовать require('libName') как способ интеграции библиотеки на вашу веб-страницу/приложение. Может ли кто-нибудь объяснить мне, как именно это работает и как это реализовать? Причина по умолчанию require() не работает.JavaScript, требующий библиотек

ответ

3

JavaScript в браузере не имеет функции require, эта функция предоставляется внешними библиотеками по двум наиболее популярным спецификациям: CommonJS и AMD. Взгляните на RequireJS, который отлично сочетается с обоими узорами.

JavaScript на сервере (NodeJS) по умолчанию использует спецификацию CommonJS.

+0

RequireJS не имеет ничего общего с требовать («») СФ Адонис спрашивает о, на самом деле это имя очень запутанным, следует назвать AMDJS. require ('package') является обычным стилемJS, который можно легко использовать в браузере с помощью таких инструментов, как Webmake или Browserify –

2

Требование - это либо созданная вручную функция, которая была бы написана сама, либо она является частью библиотеки, которую вы загрузили бы перед ЛЮБОЙ другой JS на странице.

Например, RequireJS - это библиотека, которая имеет дело только с загрузкой зависимостей (и, если потребуется, пространство имен).

Вы можете сделать свой собственный довольно просто, с помощью onload события из тега сценария программно вставить на страницу (или onreadystatechange для старых версий IE), с парой откаты в зависимости от того, сколько супер-стар браузеры, которые вы хотите поддержать.

Изучая шаблоны для «Обещаний», вы также можете вдаваться в нужные зависимости прямо в середине своих модулей.

Опять же, разные библиотеки поддерживают это по-разному.

2

Вот очень легкий требуется:

var require = function(src, success, failure){ 
    !function(source, success_cb, failure_cb){ 
      var script = document.createElement('script'); 
      script.async = true; script.type = 'text/javascript'; script.src = source; 
      script.onload = success_cb || function(e){}; 
      script.onerror = failure_cb || function(e){}; 
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script); 
    }(src, success, failure); 
} 

require('js/jquery.js', function(){ 
    console.log('jQuery is ready to use'); 
}, function(){ 
    console.log("Something went wrong loading this script"); 
}); 
Смежные вопросы