Использование Linq.js с Durandal/Require.js

Я сделал следующие настройки:

  1. Добавлен следующий тег скрипта:

    <script src="Scripts/linq.js"></script>
    
  2. Настройте 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'
        }
    }   
     });
    
  3. Попытайтесь получить копию этого в одной из моих viewmodel (shell.js) следующим образом:

    define(['plugins/router', 'durandal/app','linq'], function (router, app, linq) 
    
  4. Оптимизация сборки с использованием 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, чтобы исключить его.

Другие вопросы по тегам