Моя файловая структура выглядит так. Все находится в папке js.Оптимизатор RequireJS не может правильно загрузить внешнюю facebook js
-js
--config.js
-app
--app.fb.js
--main.js
-lib
--jquery-1.9.0.js
--require.js
-tools
--r.js
--build.js
Я создал конфигурационный файл в соответствии с https://developers.facebook.com/docs/javascript/howto/requirejs
config.js
require.config({
shim: {
'facebook' : { exports: 'FB' }
},
paths: {
'jquery': '../lib/jquery-1.9.0',
'facebook': '//connect.facebook.net/en_US/all'
}
});
app.fb.js
define(['facebook'], function(){
console.log("loaded fb");
});
build.js
({
baseUrl: "../app",
mainConfigFile: "../config.js",
name: "main",
out: "../core.js",
paths: {
'facebook': 'empty:'
}
})
main.js
require(["jquery", "app.fb"], function($, appfb){
// Log the callback parameter.
console.log("$.fn.jquery:", $.fn.jquery);
});
наконец я называю оптимизированный файл (core.js) здесь
<script type="text/javascript" data-main="js/core" src="js/lib/require-2.1.15.js"></script>
Оптимизатор кажется правильно работать, но когда я загрузить страницу я ожидаю, что модуль Facebook на загрузите с CDN. Вместо этого я получаю
GET http://example.com/js/facebook.js требуют-2.1.15.js: 1901 Uncaught Ошибка: Ошибка сценария для: facebook
Я провел возрастов на этом и не могу понять эту проблему! Любые мысли?
Благодаря
Аналогичная заметка здесь о важности 'mainConfigFile' ... http://stackoverflow.com/questions/16233372/requirejs-optimization-undefined-is-not-a-function – doublejosh