使用 Plugman 管理插件

从 3.0 版开始,Cordova 将所有设备 API 实现为插件,默认情况下禁用它们。它还支持两种不同的添加和删除插件的方法,具体取决于您在 概述 中讨论的工作流程选择。

  • 如果您使用跨平台工作流程,请使用 cordova CLI 工具添加插件,如 命令行界面 中所述。CLI 会同时为所有指定的平台修改插件。

  • 如果您使用以平台为中心的流程,则可以使用更低级别的 Plugman 命令行界面,分别针对每个目标平台。

本节详细介绍 Plugman 工具。有关将 Plugman 作为节点模块使用或修改源代码的更多信息,请参阅 其存储库中的自述文件

安装 Plugman

要安装 plugman,您必须在计算机上安装 node。然后,您可以在环境中的任何位置运行以下命令以全局安装 plugman,以便它在任何目录中都可用

$ npm install -g plugman

您还必须在 PATH 中拥有 git,才能直接从远程 git URL 安装插件。

提示:如果您发现使用 npm 安装 plugman 后仍然无法运行任何 plugman 命令,请确保您已将 /npm/ 目录添加到 PATH 中。

注意:如果您不想通过全局安装 Plugman 来污染全局 npm 命名空间,则可以跳过此步骤。如果是这种情况,那么当您使用 shell 工具创建 Cordova 项目时,项目中将有一个 node_modules 目录,其中包含 Plugman。由于您没有全局安装,因此您需要为每个 Plugman 命令调用 node,例如 node ./node_modules/plugman/main.js -version。本指南的其余部分假设您已全局安装 Plugman,这意味着您可以使用 plugman 调用它。

创建 Cordova 项目

在使用 Plugman 之前,您必须创建一个 Cordova 项目。您可以使用命令行界面或更低级别的 shell 脚本执行此操作。有关使用 shell 脚本创建项目的说明,请参阅平台指南页面上列出的各种“命令行工具”指南。

添加插件

安装 Plugman 并创建 Cordova 项目后,您可以使用以下命令开始将插件添加到平台

$ plugman install --platform <ios|android> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www <directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]

使用最少的参数,此命令将插件安装到 Cordova 项目中。您必须为该平台指定一个平台和 Cordova 项目位置。您还必须指定一个插件,不同的 --plugin 参数形式为

  • name:插件内容所在的目录名称。这必须是 --plugins_dir 路径下(有关更多信息,请参见下文)的现有目录,或者 Cordova 注册表中的插件。
  • url:以 https:// 或 git:// 开头的 URL,指向一个有效的 git 存储库,该存储库是可克隆的,并且包含一个 plugin.xml 文件。此存储库的内容将被复制到 --plugins_dir 中。
  • path:指向包含有效插件的目录的路径,该插件包含一个 plugin.xml 文件。此路径的内容将被复制到 --plugins_dir 中。

其他参数

  • --plugins_dir 默认值为 <project>/cordova/plugins,但可以是包含每个获取插件的子目录的任何目录。
  • --www 默认值为项目的 www 文件夹位置,但可以是任何用作 Cordova 项目应用程序 Web 资产的目录。
  • --variable 允许在安装时指定某些变量,这对于某些需要 API 密钥或其他自定义用户定义参数的插件是必需的。有关更多信息,请参见 插件规范

删除插件

要卸载插件,只需传递 uninstall 命令并提供插件 ID。

$ plugman uninstall --platform <ios|android> --project <directory> --plugin <id> [--www <directory>] [--plugins_dir <directory>]

帮助命令

Plugman 提供了一个全局帮助命令,如果您遇到问题或遇到问题,它可能会有所帮助。它将显示所有可用的 Plugman 命令及其语法列表

plugman -help
plugman  # same as above

注意plugman -help 可能会显示一些额外的与注册表相关的命令。这些命令适用于插件开发人员,可能不会在第三方插件注册表中实现。

您还可以将 --debug|-d 标志附加到任何 Plugman 命令,以在详细模式下运行该命令,这将显示任何内部调试消息,因为它们被发出,并且可以帮助您跟踪诸如丢失文件之类的问题。

# Adding Android battery-status plugin to "myProject":
plugman -d install --platform android --project myProject --plugin cordova-plugin-battery-status

最后,您可以使用 --version|-v 标志查看您正在使用的 Plugman 版本。

plugman -v

注册表操作

有一些 plugman 命令可用于与 插件注册表 交互。请注意,这些注册表命令特定于 plugins.cordova.io 插件注册表,可能不会由第三方插件注册表实现。

搜索插件

您可以使用 Plugman 在 插件注册表 中搜索与给定空格分隔的关键字列表匹配的插件 ID。

plugman search <plugin keywords>

更改插件注册表

您可以获取或设置 plugman 当前使用的插件注册表的 URL。通常,您应该将其保留在 http://registry.cordova.io,除非您要使用第三方插件注册表。

plugman config set registry <url-to-registry>
plugman config get registry

获取插件信息

您可以使用以下命令获取有关存储在插件存储库中的任何特定插件的信息

plugman info <id>

这将联系插件注册表并获取信息,例如插件的版本号。

安装核心插件

以下示例展示了如何根据需要添加插件,以便您在升级到 3.0 版后,项目中使用的任何 Cordova API 仍然有效。对于每个命令,您需要选择目标平台,并引用该平台的项目目录。

  • cordova-plugin-battery-status

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-battery-status
    
  • cordova-plugin-camera

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-camera
    
  • cordova-plugin-console

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-console
    
  • cordova-plugin-contacts

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-contacts
    
  • cordova-plugin-device

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device
    
  • cordova-plugin-device-motion (加速度计)

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device-motion
    
  • cordova-plugin-device-orientation (指南针)

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-device-orientation
    
  • cordova-plugin-dialogs

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-dialogs
    
  • cordova-plugin-file

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-file
    
  • cordova-plugin-file-transfer

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-file-transfer
    
  • cordova-plugin-geolocation

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-geolocation
    
  • cordova-plugin-globalization

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-globalization
    
  • cordova-plugin-inappbrowser

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-inappbrowser
    
  • cordova-plugin-media

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-media
    
  • cordova-plugin-media-capture

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-media-capture
    
  • cordova-plugin-network-information

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-network-information
    
  • cordova-plugin-splashscreen

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-splashscreen
    
  • cordova-plugin-vibration

      plugman install --platform <ios|android> --project <directory> --plugin cordova-plugin-vibration