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

时间:2014-09-26 10:36:42

标签: javascript android ios cordova phonegap-plugins

我正在构建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
});

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

内的AFTER_PREPARE步骤中完成。

1 个答案:

答案 0 :(得分:1)

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

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

解析速度更快,因为评论和空格不必明确忽略(因为它们不存在)。

但是,如果文件很大(2000行或更多),就像jquery一样,它只会产生真正的不同。没有必要缩小20行文件。