连接并缩小cordova/phonegap插件文件

sgi*_*eno 37 javascript android ios phonegap-plugins cordova

我正在构建Cordova 3.5.0应用程序.我使用grunt构建一个缩小的Web应用程序,然后我使用cordova CLI和cordova钩子来构建一个特定于平台的包.我使用了10多个不同的插件,一些Cordova官方插件和一些自定义插件.我想知道如何连接和缩小插件中的JS文件与我的其他第三方库.

执行后,cordova prepare我看到生成的cordova_plugins.js文件包含以下内容:

cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    {
        "file": "plugins/org.apache.cordova.globalization/www/GlobalizationError.js",
        "id": "org.apache.cordova.globalization.GlobalizationError",
        "clobbers": [
            "window.GlobalizationError"
        ]
    },
    {
        "file": "plugins/org.apache.cordova.globalization/www/globalization.js",
        "id": "org.apache.cordova.globalization.globalization",
        "clobbers": [
            "navigator.globalization"
        ]
    }
];
module.exports.metadata = 
// TOP OF METADATA
{
    "org.apache.cordova.globalization": "0.3.1"
}
// BOTTOM OF METADATA
});
Run Code Online (Sandbox Code Playgroud)

我知道如何使用这些插件缩小和生成单个文件,但不知道如何调整cordova构建过程以从单个文件但不同的包中获取所有clobbers.我的第一个想法是所有过程都必须在platforms/<platform>/assets/www文件夹内的AFTER_PREPARE步骤中完成

小智 1

缩小确实可以提高性能,原因有两个:

减少文件大小(因为它删除了注释和不必要的空格),因此您的脚本加载速度更快。即使它嵌入到 .

它的解析速度更快,因为注释和空格不必显式忽略(因为它们不存在)。

但是,只有当文件很大(2000 行或更多)时,它才会产生真正的影响,比如 jquery。缩小 20 行文件是没有意义的。