【问题标题】:Error while adding a Custom Local plugin in Cordova project在 Cordova 项目中添加自定义本地插件时出错
【发布时间】:2017-09-04 16:42:02
【问题描述】:

我在 VS 2015 中创建了一个 Cordova 应用程序(适用于 Windows)。该应用程序预计将使用插件来访问在托管代码 (C#) 中实现的功能。我根据预期的架构创建了一个插件。

现在,我在使用添加插件 jn Cordova App 时遇到错误

Config -> Plugins-> Custom -> Local ->

Apache Cordova Tools 的完整输出为:

------ Ensuring correct global installation of package from source package directory: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\ApacheCordovaTools\packages\vs-tac
------ Name from source package.json: vs-tac
------ Version from source package.json: 1.0.42
------ Package already installed globally at correct version.
Installing plugin 'D:\Learning\WindowsApp\Window 10\TestPlugin\MTIFirstCalculator'
Starting launch process C:\Users\Manoj\AppData\Roaming\Microsoft\VisualStudio\MDA\vs-npm\2.14.9\node.exe "C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\pluginInstall.js" --action install --projectSourceDir "D:\Learning\WindowsApp\Window 10\FirstCordovaApp\FirstCordovaApp" --pluginName D:\Learning\WindowsApp\Window 10\TestPlugin\MTIFirstCalculator --language en-US  --cliVersion "6.1.1" --npmInstallDir "C:\Users\Manoj\AppData\Roaming\npm"  --loglevel warn  
------ Cordova tools 6.1.1 already installed.
Each package is licensed to you by its owner. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages. Some packages may include dependencies which are governed by additional licenses. Follow the package source (feed) URL to determine any dependencies.
Executing "before_plugin_add"  hook for all plugins.
No version specified, retrieving version from config.xml
No version given in config.xml, attempting to use plugin engine info
C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\node_modules\q\q.js:126
                    throw e;
                          ^
Error: Registry returned 404 for GET on https://registry.npmjs.org/FirstCordovaApp
    at makeError (C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\node_modules\cordova\6.1.1\node_modules\cordova\node_modules\cordova-lib\node_modules\npm\node_modules\npm-registry-client\lib\request.js:302:12)
    at CachingRegistryClient.<anonymous> (C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\node_modules\cordova\6.1.1\node_modules\cordova\node_modules\cordova-lib\node_modules\npm\node_modules\npm-registry-client\lib\request.js:280:14)
    at Request._callback (C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\node_modules\cordova\6.1.1\node_modules\cordova\node_modules\cordova-lib\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14)
    at Request.self.callback (C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\node_modules\cordova\6.1.1\node_modules\cordova\node_modules\cordova-lib\node_modules\npm\node_modules\request\request.js:187:22)
    at Request.emit (events.js:110:17)
    at Request.<anonymous> (C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\node_modules\cordova\6.1.1\node_modules\cordova\node_modules\cordova-lib\node_modules\npm\node_modules\request\request.js:1044:10)
    at Request.emit (events.js:107:17)
    at IncomingMessage.<anonymous> (C:\Users\Manoj\AppData\Roaming\npm\node_modules\vs-tac\node_modules\cordova\6.1.1\node_modules\cordova\node_modules\cordova-lib\node_modules\npm\node_modules\request\request.js:965:12)
    at IncomingMessage.emit (events.js:129:20)
    at _stream_readable.js:908:16
Done

plugin.xml的内容是:

<?xml version="1.0" encoding="UTF-8"?>
<plugin id="MTIFirstCalc" version="0.2.0" xmlns="http://apache.org/cordova/ns/plugins/1.0">
    <name>MTIFirstCalc</name>
    <description>Calculator</description>
    <license>MTI</license>
    <keywords></keywords>
    <repo></repo>
    <issue></issue>

    <js-module src="www/MTIFirstCalc.js" name="MTIFirstCalc">
        <clobbers target="window.MTICalculate" />
    </js-module>

    <!-- windows -->
    <platform name="windows">
        <js-module src="src/windows/MTIFirstCalcProxy.js" name="MTIFirstCalcProxy">
            <merges target="" />
        </js-module>

    </platform>

</plugin>

可能是什么原因?

【问题讨论】:

  • 你的插件叫什么名字?你能发布完整的错误信息吗?
  • 插件的名称是 MTIFirstCalc。插件的 ID 在 xml 中定义为 com.MTI.MTIFirstCalc。我已编辑 OP 以包含来自 VS2015 的 Apache Cordova tools 的完整输出。
  • 我刚试了你的插件ID,它工作正常,你能发你的plugin.xml吗?
  • @ElvisXia-MSFT 我添加了 plugin.xml 的内容。请注意,我使用local 选项尝试了另一个插件(由另一个人创建),但它也没有工作。
  • 感谢@ElvisXia-MSFT。最后我可以解决这个问题。似乎是Apache Cordova Tools 的错误/限制。

标签: cordova plugins visual-studio-2015 visual-studio-cordova


【解决方案1】:

我终于可以解决问题了。我不确定它是否是 Apache Cordova Tools 的错误或限制。

实际问题出在创建插件目录的路径中。也许space 不允许出现在指向插件位置的文件夹名称中。

我的插件保存在D:\Learning\WindowsApp\Window 10\TestPlugin\MTIFirstCalculator 文件夹中。

一旦我将路径更改为D:\Learning\WindowsApp\Window10\TestPlugin\MTIFirstCalculator,我就可以添加插件

请注意,Window10 文件夹中的空间已删除。

即使在 Cordova 工具 6.5.0 中也存在该错误。

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多