无法从本地文件夹添加科尔多瓦插件

Posted

技术标签:

【中文标题】无法从本地文件夹添加科尔多瓦插件【英文标题】:Unable to add a cordova plugin from local folder 【发布时间】:2018-02-09 03:19:44 【问题描述】:

我正在 Ionic 中创建一个示例应用程序。从本地文件夹向我的应用程序添加科尔多瓦插件时,出现以下错误:

cordova 插件添加 ../local-cordova-plugin --save ✖ 运行命令 - 失败! [错误] 运行 cordova plugin add ../local-cordova-plugin --save 时出错(退出代码 1): 错误:无法获取已安装模块的绝对路径

注意:如果我在从 npm 存储库添加插件或将任何平台添加到我的应用程序后添加它,则会发生此错误。如果我先添加它,然后再添加任何其他插件或平台,它就会成功添加。

重现步骤:

$ ionic cordova plugin add ../local-cordova-plugin

注意:将平台或插件从 npm 存储库添加到您的 ionic 应用后,添加本地 cordova 插件。

其他信息: 有一个similar issue 已发布,但它并没有解决我的问题。我使用了--nofetch, --force, --noregistry, --searchpath 之类的标志,但没有任何帮助。

离子信息:

``` cli 包:(/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.9.2
ionic (Ionic CLI) : 3.9.2

全局包:

Cordova CLI : 7.0.1 

本地包:

@ionic/app-scripts : 2.1.3
Cordova Platforms  : android 6.2.3
Ionic Framework    : ionic-angular 3.6.0

系统:

Android SDK Tools : 26.0.2
Node              : v7.0.0
npm               : 3.10.8 
OS                : macOS Sierra

更新:我的 local-cordova-plugin 的 plugin.xml(根据 @MaximShoustin 的要求)

<?xml version='1.0' encoding='utf-8'?>
<plugin id="com.local.cordova" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
  <name>local_plugin</name>
  <js-module name="local_plugin" src="www/local_plugin.js">
    <clobbers target="local" />
  </js-module>
  <platform name="android">
    <config-file parent="/*" target="res/xml/config.xml">
      <feature name="local_plugin">
        <param name="android-package" value="com.local.cordova.local_plugin" />
      </feature>
    </config-file>
        <config-file parent="/*" target="AndroidManifest.xml">
    </config-file>
    <source-file src="src/android/local_plugin.java" target-dir="src/com/local/cordova/local_plugin" />
    <resource-file src="local-release/local-1.0.0-release.aar" target="libs/local-1.0.0-release.aar" />
    <edit-config file="AndroidManifest.xml" target="/manifest/uses-sdk" mode="merge">
        <uses-sdk android:minSdkVersion="19" />
    </edit-config>
  </platform>
</plugin>

【问题讨论】:

您是否尝试通过cordova添加它? a.e:cordova plugin add ../local-cordova-plugin --save 是的,我试过了,但它抛出了同样的错误。谢谢。 确保您有权读取此路径。同时发布plugin.xml of local-cordova-plugin @MaximShoustin 我已经添加了本地插件的plugin.xml 【参考方案1】:

经过大量搜索和浏览,我找到了解决问题的方法。我查看了 node_modules 并且有一个我想安装的插件的文件/符号链接。一旦我删除它,我安装插件就没有问题了。

【讨论】:

【参考方案2】:

您应该使用ionic cordova plugin add /path/to/your/plugin --link 运行

您可以通过here了解更多信息。

【讨论】:

以上是关于无法从本地文件夹添加科尔多瓦插件的主要内容,如果未能解决你的问题,请参考以下文章

科尔多瓦插件本地通知和数据

在科尔多瓦本地通知中显示进度条

在科尔多瓦本地通知中使用操作

科尔多瓦升级后本地通知插件损坏

本地存储 index.js 科尔多瓦

如何让本地通知插件在我的科尔多瓦应用程序上工作?