Requirejs 优化器 - 模块设置无法跳过外部源
Requirejs optimiser - module setup fails to skip external sources
我目前正在尝试在requirejs优化器配置中创建单独的模块,目前如下所示:基于模块的设置(无法跳过Facebook路径):
({
baseUrl: '../static/js',
mainConfigFile: '../static/js/main.js',
dir: '../static/js/deploy',
paths:{
requireLib: 'vendor/require/require.min',
_core: 'minify_modules/_core',
search: 'minify_modules/_search'
},
modules:[
{
name: 'main',
include: ['requireLib', '_core']
},
{
name: 'search',
include:['search']
}
]
})
在我的一个requirejs模块中,我需要facebook SDK。当我运行优化器时,优化器无法跳过目录并报告:
错误:JavaException:java.io.FileNotFoundException:/connect.facebook.net/en_US/all.js(没有这样的文件或目录)
最初我使用非模块方法并且只有一个输出文件。当我运行该设置时,它会跳过外部资源,如 Facebook SDK,所以我显然有点困惑为什么下面的设置会跳过上面的目录和基于模块的设置不会。
非基于模块的设置(跳过脸书路径)
({
baseUrl: '../static/js',
mainConfigFile: '../static/js/main.js',
name: 'main',
out: '../static/js/yb-scripts.min.js',
paths: {
requireLib: 'vendor/require/require.min',
_core: 'minify_modules/_core'
},
include: ['requireLib', '_core']
})
Facebook SDK 在 main.js 配置文件中被引用:
facebookSDK: '//connect.facebook.net/en_US/all',
我一直在尝试遵循这里的优化器注释:链接
您可以在 paths
属性中指定跳过最小化某个模块,因为它是由外部资源提供的:
paths: {
requireLib: 'vendor/require/require.min',
_core: 'minify_modules/_core',
facebookSDK: 'empty:'
},
有关更多详细信息,请参阅 RequireJS 文档以获取empty:
。
附带说明一下,我没有意识到默认情况下单个文件的优化过程实际上会跳过外部资源。我通常仍然为所有 JS 库指定empty:
,因为我使用带有回退的 CDN,例如 jquery: ["http://code.jquery.com/jquery-1.10.1.min", "../bower_components/jquery/jquery.min"]
.
相关文章:
- 什么'在webpack外部设置中,reactDom和reactDom不同
- 如何在定义js文件后为外部javascript文件设置变量
- 将外部控制器的范围变量设置为角度
- Ajax设置全局变量,但外部值消失
- 如何设置外部javascript创建的iframe的位置
- 如何将变量设置为外部内容
- 包括外部JS文件和设置变量
- 从外部文件设置tinymce的内容
- 如何使用 CSS 在 HTML 中设置外部 SVG 颜色
- 在外部 JavaScript 中设置 OnClick 函数
- 为什么从指令中更改外部作用域需要 scope.$apply(),即使我将范围选项设置为 false
- Requirejs 优化器 - 模块设置无法跳过外部源
- 设置外部 iframe 内输入字段的值
- Javascript - 无法获取函数来设置要在函数外部使用的全局变量
- 如何设置 var self = this;从函数外部
- 如何从外部 JavaScript 设置 HTML 元素的值
- 访问功能内的成员/从外部设置成员
- 从插件外部设置/引用插件变量
- 在外部设置显示样式会导致onclick()事件初始化两次点击
- JS的clearartimeout即使在函数外部设置var也无法工作