【问题标题】:Concatenate and minify cordova/phonegap plugin files连接和缩小 cordova/phonegap 插件文件
【发布时间】:2014-11-21 08:23:13
【问题描述】:

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

执行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 构建过程以从单个文件但不同的包中获取所有 clobber。我的第一个想法是所有过程都必须在 platforms/<platform>/assets/www 文件夹内的 AFTER_PREPARE 步骤中完成

【问题讨论】:

  • 我很好奇为什么你觉得需要连接/缩小你的插件文件。它们真的大到会大大增加编译二进制文件的大小吗?即使有一个相当大的代码库和很多插件,我的 Cordova 应用程序都没有达到 10mb,这比任何原生应用程序都要小。
  • 我的问题是在这个问题产生的讨论之后提出的:stackoverflow.com/questions/10532376/…。见 Wytze 评论
  • 你可以使用 require.js 优化器插件。
  • @devconcept 2015 年 6 月 10 日,它发布了一个新的 cordova 版本,其中包括一个有趣的功能:cordova prepare --browserify 这是浏览器化插件 javascript 接口,所以感谢 cordova 团队,我认为我的目标已经完成了一半想要实现的已经做出来了。我将深入挖掘并尝试为该问题找到明确的解决方案。
  • @sgimeno 我想他们重构了整个插件系统。这包括插件在网站上发布时的安装方式。不幸的是,这仅适用于新应用程序,而不适用于您之前所做的任何工作,除非您升级。我将安装最新版本并试一试。

标签: javascript android ios cordova phonegap-plugins


【解决方案1】:

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

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

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

但是,如果文件很大(2000 行或更多),例如 jquery,它只会产生真正的区别。缩小 20 行文件是没有意义的。

【讨论】:

  • 从技术上讲,它可能会“提高性能”,但这不是您能注意到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 2013-10-29
相关资源
最近更新 更多