Как объявить параметры для Require.js модули, которые объявляют переменную window

#javascript #requirejs

#javascript #requirejs

Вопрос:

Как мне правильно ссылаться на модули в списке параметров Require.js которые не экспортируют переменную, поскольку они привязаны к объекту window? Я использую ‘undefined’ прямо сейчас, однако jshint сообщает мне, что «‘undefined’ уже определен.», поскольку два параметра называются ‘undefined’.

 require(["jquery", "html5shiv", "plugins", "backbone"], function ($, undefined, undefined, backbone) {

   // Your code here

});
  

Комментарии:

1. попробуйте поместить такие зависимости последними и опустить их заменители для экспорта: require([«jquery», «backbone», other deps], function($, Backbone) { /* код модуля */ }). Не уверен, что это работает, вы должны попробовать.

Ответ №1:

Для зависимостей, которые на самом деле ничего не предоставляют (например, только побочный эффект) Я размещаю их последними, как указано в комментарии lexeme:

 require(["realDependency1", "realDependency2", "sideEffectDependency"],
    function(realDependency1, realDependency2) {
        ...
    }
);
  

Если зависимость действительно что-то предоставляет, но не через механизм RequireJS, вы можете вставить это:

 require.config({
    ...
    shim: {
        ...
        "ng": {
            exports: "angular"
        },
        ...
    }
});
  

На самом деле это говорит о том, что всякий раз, когда мне требуется "ng" (например define(["ng"],...) ), будет возвращена глобальная переменная angular (она же window.angular ).