Использование Linq.js с Durandal/Require.js
Я сделал следующие настройки:
Добавлен следующий тег скрипта:
<script src="Scripts/linq.js"></script>
Настройте linq.js в main.js
requirejs.config({ paths: { 'text': '../Scripts/text', 'durandal': '../Scripts/durandal', 'plugins': '../Scripts/durandal/plugins', 'transitions': '../Scripts/durandal/transitions', 'knockout': '../Scripts/knockout-2.3.0', 'jquery': '../Scripts/jquery-1.9.1,', 'linq': '../Scripts/linq' } // The ko in this project is already AMD , shim: { linq : { exports: 'Enumerable' } } });
Попытайтесь получить копию этого в одной из моих viewmodel (shell.js) следующим образом:
define(['plugins/router', 'durandal/app','linq'], function (router, app, linq)
Оптимизация сборки с использованием Weyland, однако я получаю:
Ошибка 1 ENOENT, нет такого файла или каталога 'C:\Project\build\App\linq.js' C:\Project\
Я новичок в этом, я что-то не так понял?
Я думал, что прокладка должна указывать на глобальную переменную, что я и сделал.
Нужно ли мне создавать свои собственные определения в дополнение к прокладке? Я думал, что Шим должен быть синтаксической оболочкой для сахара над определением над глобальной переменной?
1 ответ
Подкладка не должна требоваться в этой ситуации, где linq
это включить через скрипт скрипт. Просто убедитесь, что груз linq
через скрипт скрипт перед загрузкой main.js
через require.js. Затем удалите записи конфигурации и зависимости.
requirejs.config({
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'knockout': '../Scripts/knockout-2.3.0',
'jquery': '../Scripts/jquery-1.9.1,'
}
}
});
define(['plugins/router', 'durandal/app'], function (router, app){...
Таким образом, нет необходимости настраивать Weyland, чтобы исключить его.