为什么嵌入式项目更喜欢 Plugman 而不是 Cordova CLI?

Why prefer Plugman over Cordova CLI for embedded projects?

我正在开发一个仅 iOS 的项目,该项目具有嵌入式 Cordova Web 视图。 Cordova 文档说我应该使用 Plugman 而不是 Cordova CLI。但为什么?当我添加我的平台时,Cordova 会自动检测并添加插件。要使用 Plugman,我必须删除每个插件并重新添加它。我发现的唯一区别是 Plugman 将插件复制到 platforms/ios/cordova/plugins,而 Cordova 将它们保存在插件目录中。并且 Plugman 仍然为其他平台复制源代码!为什么要使用它?该应用程序可以通过任何一种方式加载插件,那么为什么更喜欢 Plugman?

在此处的最新文档中找到:https://cordova.apache.org/docs/en/latest/plugin_ref/plugman.html

If you use a cross-platform workflow, you use the cordova CLI utility to add plugins, as described in The Command-Line Interface. The CLI modifies plugins for all specified platforms at once.

If you use a platform-centered workflow, you use a lower-level Plugman command-line interface, separately for each targeted platform.

在我的应用程序开发早期(可能是 Cordova 3.x 左右),我会开始在各个平台而不是在顶层工作——然后当我这样做时我的所有更改都会被覆盖一个cordova build。超级令人沮丧——所以我最终只在顶层工作,而不是在 /platforms/ 目录中工作。我从未使用过 Plugman。所以也许这是支持 CLI 的数据点。 :-)

它不是首选,它是使用单一平台工作流程时唯一可用的工具。您根本不使用 cordova(及其 platformplugin CLI),仅使用 cordova-ios.

要创建一个 iOS 项目,运行 node_modules/cordova-ios/bin/create myproj

然后使用plugman install --platform ios --project myproj --plugin cordova-plugin-device。这会将插件的 JS 界面复制到 myproj/platform_www。由于您使用的是自己的 Xcode 项目,因此您根本不会使用生成的“myproj”项目 - 它只是 Crodova 运行time 文件的暂存区。所以您需要手动将插件的源文件添加到您的项目中,然后将其 platform_www 文件复制到您自己的 www 目录中,您的嵌入式 Web 视图可以在其中加载它们。

这应该在 Cordova 指南中有更详细的介绍。