【发布时间】: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