Прежде всего, если вы не знакомы с RequireJS, это решение на основе Javascript для загрузки файлов / модулей при необходимости, а также для управления зависимостями между ними. Одна из причин, по которой вы это читаете, заключается в том, что а) вы работаете с SharePoint б) у вас возникли проблемы с управлением большим количеством файлов js в вашем проекте и поиск способа упростить работу.
Какой бы ни была причина, вы пришли в нужное место.

После создания ряда клиентских решений в SharePoint и с появлением SharePoint Online (Office 365) возникает необходимость отказаться от отдельных громоздких файлов javascript и преобразовать их в модули. Вот где RequireJS решает ваши проблемы. Я полагаю, что разработчики по-прежнему будут внедрять свою собственную версию RequireJS в мастер-страницы / макеты страниц, чтобы начать с ней работать. Но в связи с недавними разработками настройка главной страницы ваших клиентов SharePoint не одобряется Microsoft, особенно из-за частых обновлений, получаемых онлайн-клиентами SharePoint. Есть способ загрузить RequireJS без необходимости добавлять ссылку на его cdn на ваших страницах. Я мог бы сказать это, потому что каждая страница SharePoint поставляется с этой строкой кода (вы можете просмотреть исходный код страницы, чтобы проверить себя),

<script type="text/javascript">
RegisterSod("require.js", "https:\u002f\u002fstatic.sharepointonline.com\u002fbld\u002f_layouts\u002f15\u002f16.0.6511.1205\u002frequire.js");
</script>

Метод RegisterSod не загружает require.js на вашу страницу, он просто регистрирует его как сценарий Ondemand, чтобы вы могли загрузить его, когда и если потребуется.

Итак, как загрузить файл, чтобы начать его использовать,

SP.SOD.executeFunc("require.js",null,function(){
 //callback executed when require.js is loaded
})

Вышеупомянутая функция загрузит require.js, и после загрузки файла будет выполнен обратный вызов. Вы можете попробовать это прямо сейчас в консоли инструментов разработчика (и вы должны войти в систему на любой странице sharepoint ;-)). Теперь, когда requirejs загружен на страницу, и если вы снова выполните приведенный выше код, он не выполнит обратный вызов. Удивительно, но факт. Давай, попробуй на своей консоли. Причина в том, что задача executeFunc - загрузить сценарий OnDemand, уведомить SharePoint, когда он это делает, и выполнить обратный вызов. Как только это будет сделано, и вы запустите тот же код, он не будет загружать файл, поскольку он уже был загружен, и, следовательно, обратный вызов не выполняется. Так что, если у меня на странице несколько веб-частей и нет способа узнать, какая из них будет выполнена первой, а я использовал executeFunc во всех веб-частях? К счастью, есть способ решить эту проблему.
Обычно, когда вы используете requirejs, у вас, вероятно, есть файл конфигурации, чтобы отслеживать все ваши модули и управлять зависимостями. Давайте создадим файл с именем require.config.js, который будет храниться в какой-нибудь библиотеке в SharePoint. Обычно это выглядит так,

requirejs.config({
    baseUrl: "/",
    paths: {
      'jquery':['https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min'],
      'knockout': ['https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min']
     
      },
    shim: {
        /* Set dependencies */
    'knockout'  :{
            deps: ['jquery']
             }
       
    },
    waitSeconds: 0
});

Нам всегда нужно загружать этот файл перед загрузкой любого из наших модулей, определенных в нем.

SP.SOD.executeFunc("require.js",null,function(){

  require(['pathToRequireConfig/require.config.js'],function(){
    
   })
})

Чтобы решить нашу проблему наличия нескольких блоков, зависящих от requirejs, мы должны добавить эту строку в наш require.config.js в конце,

SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs("require.config.js");

Это записывает, что упомянутый файл сценария загружен, и выполняет любые задания в очереди ожидающих заданий, которые ожидают загрузки файла сценария.
Итак, как мы можем определить, есть ли какие-либо ожидающие задания в очереди,

SP.SOD.executeOrDelayUntilScriptLoaded(function(){
    require(['jquery'],function($){
         //Start using jquery
     });
}, 'require.config.js');

SP.SOD.executeOrDelayUntilScriptLoaded уведомит очередь SharePoint о том, что она ожидает загрузки файла, и SharePoint выполнит обратный вызов после загрузки require.config.js. Итак, наш файл require.config.js был загружен с помощью requirejs внутри блока SP.SOD.executeFunc и SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs («require.config.js»); который мы добавили в последнюю строку в require.config.js, уведомляет SharePoint о том, что файл был загружен, и просит выполнить все ожидающие задания, которые мы добавили с помощью SP.SOD.executeOrDelayUntilScriptLoaded.

Таким образом, вы можете начать использовать RequireJS без редактирования главной страницы и загрузить несколько модулей.