javascript - Requirejs 优化器 - 模块设置无法跳过外部源

标签 javascript requirejs minify r.js

我目前正在尝试在 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。当我运行优化器时,优化器无法跳过目录并报告:

Error: JavaException: java.io.FileNotFoundException: /connect.facebook.net/en_US/all.js (No such file or directory)

最初我使用非模块方法并且只有一个输出文件。当我运行该设置时,它会跳过 Facebook SDK 等外部资源,所以我显然有点困惑,为什么下面的设置会跳过目录,而上面基于模块的设置不会。

非基于模块的设置(跳过 facebook 路径)

    ({
    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']
})

在 main.js 配置文件中引用了 Facebook SDK:

facebookSDK: '//connect.facebook.net/en_US/all',

我一直在尝试遵循此处的优化器注释:LINK

最佳答案

您可以在 paths 属性中指定跳过最小化某个模块,因为它是从外部资源提供的:

paths: {
  requireLib: 'vendor/require/require.min',
  _core: 'minify_modules/_core',
  facebookSDK: 'empty:'
},

参见 RequireJS docs for empty:了解更多详情。

附带说明一下,我没有意识到单个文件的优化过程实际上会默认跳过外部资源。我通常仍然为所有 JS 库指定 empty:,因为我使用带有回退的 CDN,例如 jquery: ["http://code.jquery.com/jquery-1.10.1. min", "../bower_components/jquery/jquery.min"].

关于javascript - Requirejs 优化器 - 模块设置无法跳过外部源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19754735/

相关文章:

javascript - PhantomJS 中出现 RequireJS 错误,但 Chrome/FireFox 中没有

javascript - require.js 中的显式依赖处理与隐式依赖处理

minify - Bower 和 Grunt 工作流程

php - 从 JSON 字符串中删除所有不必要的空格(在 PHP 中)

javascript - 如何在Alfresco中通过Activiti工作流javascript获取bpm_outcome

javascript - jquery/ajax 提要解析器脚本在页面上不起作用

javascript - 为什么空的 200 在 jQuery 中会导致失败?

javascript - npm:如何使用正确的依赖项创建调试和生产版本?

javascript - 为什么我们在缩小的 JavaScript 中会有换行符?

javascript - 轴的过渡