Cordova试图从repo而不是本地插件获取插件

Pie*_*ter 4 sap cordova sapui5 sap-fiori sap-smp

我正在尝试使用SMP SDK 3.O PL3创建一个适用于iOS的Fiori客户端.在某些时候,它试图获取一个不存在的插件:通过npm获取插件"kapsel-plugin-inappbrowser"

我不明白为什么.插件的源文件就在那里,就像其他插件一样: 在此输入图像描述

$ cordova platform add ios --searchpath /Users/Pieter/SAP/MobileSDK3/KapselSDK/plugins
Adding ios project...
iOS project created with cordova-ios@3.9.1
Installing "cordova-plugin-camera" for ios
Installing "cordova-plugin-contacts" for ios
Installing "cordova-plugin-device" for ios
Installing "cordova-plugin-file" for ios
Installing "cordova-plugin-geolocation" for ios
Installing "cordova-plugin-media" for ios
Installing "cordova-plugin-media-capture" for ios
Installing "cordova-plugin-network-information" for ios
Installing "cordova-plugin-splashscreen" for ios
Installing "cordova-plugin-statusbar" for ios
Installing "cordova-plugin-whitelist" for ios
Installing "de.appplant.cordova.plugin.printer" for ios
Installing "kapsel-plugin-corelibs" for ios
Installing "kapsel-plugin-apppreferences" for ios
Installing "kapsel-plugin-attachmentviewer" for ios
Installing "kapsel-plugin-authproxy" for ios
Fetching plugin "kapsel-plugin-inappbrowser" via npm
Failed to install 'kapsel-plugin-authproxy':CordovaError: Failed to fetch plugin kapsel-plugin-inappbrowser via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: Registry returned 404 for GET on https://registry.npmjs.org/kapsel-plugin-inappbrowser
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:141:33
    at _rejected (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:797:24)
    at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:823:30
    at Promise.when (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:1035:31)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:741:41)
    at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:557:44
    at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:355:11)
Failed to install 'kapsel-plugin-attachmentviewer':CordovaError: Failed to fetch plugin kapsel-plugin-inappbrowser via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: Registry returned 404 for GET on https://registry.npmjs.org/kapsel-plugin-inappbrowser
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:141:33
    at _rejected (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:797:24)
    at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:823:30
    at Promise.when (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:1035:31)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:741:41)
    at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:557:44
    at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:355:11)
Failed to fetch plugin kapsel-plugin-inappbrowser via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Error: Registry returned 404 for GET on https://registry.npmjs.org/kapsel-plugin-inappbrowser
Run Code Online (Sandbox Code Playgroud)

plugin.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
           id="kapsel-plugin-inappbrowser"
      version="0.6.0-patched">

    <name>InAppBrowser</name>
    <description>Cordova InAppBrowser Plugin</description>
    <license>Apache 2.0</license>
    <keywords>cordova,in,app,browser,inappbrowser</keywords>
    <repo>https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git</repo>
    <issue>https://issues.apache.org/jira/browse/CB/component/12320641</issue>

    <engines>
      <engine name="cordova" version=">=3.1.0" /><!-- Needs cordova/urlutil -->
    </engines>

    <!-- android -->
    <platform name="android">
        <js-module src="www/inappbrowser.js" name="inappbrowser">
            <clobbers target="window.open" />
        </js-module>
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="InAppBrowser"> 
                <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser"/>
            </feature>
        </config-file>

        <source-file src="src/android/InAppBrowser.java" target-dir="src/org/apache/cordova/inappbrowser" />
        <source-file src="src/android/InAppBrowserDialog.java" target-dir="src/org/apache/cordova/inappbrowser" />
        <source-file src="src/android/InAppChromeClient.java" target-dir="src/org/apache/cordova/inappbrowser" />

        <!--  drawable src/android/resources -->
        <resource-file src="src/android/res/drawable-hdpi/ic_action_next_item.png" target="res/drawable-hdpi/ic_action_next_item.png" />
        <resource-file src="src/android/res/drawable-mdpi/ic_action_next_item.png" target="res/drawable-mdpi/ic_action_next_item.png" />
        <resource-file src="src/android/res/drawable-xhdpi/ic_action_next_item.png" target="res/drawable-xhdpi/ic_action_next_item.png" />
        <resource-file src="src/android/res/drawable-xxhdpi/ic_action_next_item.png" target="res/drawable-xxhdpi/ic_action_next_item.png" />

        <resource-file src="src/android/res/drawable-hdpi/ic_action_previous_item.png" target="res/drawable-hdpi/ic_action_previous_item.png" />
        <resource-file src="src/android/res/drawable-mdpi/ic_action_previous_item.png" target="res/drawable-mdpi/ic_action_previous_item.png" />
        <resource-file src="src/android/res/drawable-xhdpi/ic_action_previous_item.png" target="res/drawable-xhdpi/ic_action_previous_item.png" />
        <resource-file src="src/android/res/drawable-xxhdpi/ic_action_previous_item.png" target="res/drawable-xxhdpi/ic_action_previous_item.png" />

        <resource-file src="src/android/res/drawable-hdpi/ic_action_remove.png" target="res/drawable-hdpi/ic_action_remove.png" />
        <resource-file src="src/android/res/drawable-mdpi/ic_action_remove.png" target="res/drawable-mdpi/ic_action_remove.png" />
        <resource-file src="src/android/res/drawable-xhdpi/ic_action_remove.png" target="res/drawable-xhdpi/ic_action_remove.png" />
        <resource-file src="src/android/res/drawable-xxhdpi/ic_action_remove.png" target="res/drawable-xxhdpi/ic_action_remove.png" />

    </platform>

    <!-- ios -->
    <platform name="ios">
        <js-module src="www/inappbrowser.js" name="inappbrowser">
            <clobbers target="window.open" />
        </js-module>  
        <config-file target="config.xml" parent="/*">
            <feature name="InAppBrowser">
                <param name="ios-package" value="CDVInAppBrowser" /> 
            </feature>
        </config-file>

        <header-file src="src/ios/CDVInAppBrowser.h" />
        <source-file src="src/ios/CDVInAppBrowser.m" />

        <framework src="CoreGraphics.framework" />
    </platform>


    <!-- windows universal apps (Windows 8.1, Windows Phone 8.1, Windows 8.0) -->
    <platform name="windows">
        <js-module src="www/inappbrowser.js" name="inappbrowser">
            <clobbers target="window.open" />
        </js-module>
        <js-module src="src/windows/InAppBrowserProxy.js" name="InAppBrowserProxy">
            <merges target="InAppBrowserProxy" />
        </js-module>
    </platform>

</plugin>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过Cordova 5.2和最新版本5.3.

Mik*_*lan 6

从cordova 5开始,插件被移动到npm,这是cordova现在使用时的默认位置cordova plugin add.您可以使用git repo的完整路径安装插件:

cordova plugin add https://url-to-git-repo.git
Run Code Online (Sandbox Code Playgroud)

或者,您可以将插件下载到本地目录,而不是/ plugins文件夹,例如local_plugins,然后从那里安装:

cordova plugin add local_plugins/your-plugin-name
Run Code Online (Sandbox Code Playgroud)

另外,由于cordova将cordova prepare在构建过程中运行,因此--save在添加时应该插件,这会将其持久保存到config.xml中,以确保cordova不会混淆其位置:

cordova plugin add your-plugin --save
Run Code Online (Sandbox Code Playgroud)