2015-03-21 3 views
1

Я пытаюсь получить базовое приложение JS, но у меня есть некоторые трудности, может кто-то помочь, пожалуйста? Я тоже использую Laravel.У меня возникли проблемы с настройкой RequireJS

Включить скрипт

<body> 
    @yield('content') 
    <script data-main="{{ asset('/js/main.js') }}" src="{{ asset('/js/require.js') }}"></script> 
</body> 

config.js

require.config({ 
    baseUrl: "", 
    paths: { 
     "jquery": "jquery-2.1.3.min" 
    } 
}); 

main.js

require(['config'], function() { 
    define(['jquery'], function($) { 

     $(document).ready(function() 
     { 
      alert("test"); 
     }); 

    }); 
}); 

структура каталогов Папка:

/public 
-- /js 
-- -- jquery-2.1.3.min.js 
-- -- config.js 
-- -- main.js 
-- -- require.js 

Ошибки я получаю:

Uncaught Error: Mismatched anonymous define() module: function() { 
     alert("test"); 
    } 

ответ

0

define() обертка должна обернуть модуль, не вложенной внутри любого блока кода. В вашем случае это дочерняя оболочка обертки require().

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

Для этого есть 2 способа.

Используйте отдельные файлы (как пути)

main.js

require.config({ 
    baseUrl: "", 
    paths: { 
     "jquery": "jquery-2.1.3.min", 
     "app" : "main_module" 
    }, 
    deps: 'app' 
}); 

main_module.js

define(['jquery'], function($) { 

    $(document).ready(function(){ 
     alert("test"); 
    }); 

}); 

Или положить ваш конфиг в ваш главный .js. Затем введите код внутри

require.config({ 
    baseUrl: "", 
    paths: { 
     "jquery": "jquery-2.1.3.min" 
    } 
}); 

require(['jquery'], function($) { 

    $(document).ready(function(){ 
     alert("test"); 
    }); 

}); 
Смежные вопросы