RequireJS 优化器无法正确加载外部 facebook js
RequireJS optimizer fails to load external facebook js correctly
我的文件结构如下所示。一切都在 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 require-2.1.15.js:1901
未捕获的错误:脚本错误:facebook
我在这上面花了很长时间,但无法找出问题所在!
有什么想法吗?
谢谢
知道了,出于某种原因,这只有在我将 config.js 内容移动到 main.js 时才有效。
这看起来像:
require.config({
shim: {
'facebook' : { exports: 'FB' }
},
paths: {
'jquery': '../lib/jquery-1.9.0',
'facebook': '//connect.facebook.net/en_US/all'
}
});
require(["jquery", "app.fb"], function($, appfb){
// Log the callback parameter.
console.log( "$.fn.jquery:", $.fn.jquery );
});
在build.js中,更改
mainConfigFile: "../app/config.js",
至
mainConfigFile: "../app/main.js",
r.js 优化器正确运行!
我的文件结构如下所示。一切都在 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 require-2.1.15.js:1901
未捕获的错误:脚本错误:facebook
我在这上面花了很长时间,但无法找出问题所在! 有什么想法吗?
谢谢
知道了,出于某种原因,这只有在我将 config.js 内容移动到 main.js 时才有效。
这看起来像:
require.config({
shim: {
'facebook' : { exports: 'FB' }
},
paths: {
'jquery': '../lib/jquery-1.9.0',
'facebook': '//connect.facebook.net/en_US/all'
}
});
require(["jquery", "app.fb"], function($, appfb){
// Log the callback parameter.
console.log( "$.fn.jquery:", $.fn.jquery );
});
在build.js中,更改
mainConfigFile: "../app/config.js",
至
mainConfigFile: "../app/main.js",
r.js 优化器正确运行!