Custom cordova插件中的package.json无效

时间:2016-11-13 08:39:46

标签: android cordova

我正在尝试在cordova中开发一个自定义插件,它会在每个指定的时间间隔给我一个位置。问题是我在这个插件目录中没有任何 package.json 文件。

当我尝试将此插件添加到我们的cordova项目中时,我收到无效的package.json 错误。

请帮助我,我是cordova的新人。我需要做些什么来解决这个错误。

我正在使用此命令在项目中添加插件

cordova plugin add ../loccation_plugin/LocationPlugin/

8 个答案:

答案 0 :(得分:16)

我在将自定义插件添加到项目时遇到了同样的问题。 我使用plugman工具创建自定义插件,你很可能也使用插件工具。

如果是这种情况,则执行以下命令以生成有效的package.json

plugman createpackagejson "path of your plugin"

这会问你一些关于插件的基本问题,并会根据它生成package.json文件。

答案 1 :(得分:5)

我遇到同样的问题' pkg未定义'问题,然后我尝试使用npm init创建package.json文件并成功。

答案 2 :(得分:3)

我遇到了同样的问题,但是使用了这个npm init,按Enter键并按照cmd上的要求填写数据

答案 3 :(得分:1)

我在使用自定义插件时在Windows中遇到了同样的问题,看起来插件的位置是问题(本地磁盘位置)。

例如,Cordova项目位于E:/projects/cordova-project,我在两个不同的磁盘中有一个插件:

  • custom-plugin-main:C:/plugins/myawesome-plugin-name
  • custom-secondary-plugin:E:/plugins/myawesome-plugin-name

虽然项目和插件位于同一磁盘中,但如果我从E:磁盘安装插件:

cordova plugin add E:/plugins/myawesome-plugin-name

将抛出异常,但如果我从C:盘安装它:

cordova plugin add C:/plugins/myawesome-plugin-name

然后应该成功安装插件:

Cordova Plugin Error: Invalid package.json

请注意,插件是相同的,但在不同的文件夹和磁盘中... 这很奇怪,但是这解决了我的问题。

答案 4 :(得分:0)

我得到了同样的错误。

按照answer中的推理,我意识到当我们尝试从文件夹安装cordova插件时:目标文件夹的名称必须与插件ID相同 < / p>

答案 5 :(得分:0)

cygwin 中运行此命令后出现此错误。我的解决方案是从 cmd 运行cordova命令。与其他有关此错误的帖子一样,插件的路径存在问题。

答案 6 :(得分:0)

我通过使用Plugman实用程序生成package.json文件来修复此问题,我还必须将我的插件从Cordova项目中的子目录移动到我的Cordova项目的根目录。

换句话说,我从以下位置移动了插件:

my-cordova-project/extras/plugins

为:

my-cordova-project

答案 7 :(得分:0)

使用 plugman 代替 cordova 安装您的插件 例如我的插件是

hello-plugin

现在我在hello-plugin的父文件夹

plugman install --platform android --project platforms/android --plugin ./hello-plugin

你可以把android改成你想安装的其他平台比如ios

如果安装成功,你会在

找到你的插件
<project-name>\platforms\android\cordova\plugins

为了更清楚

我在 Windows 中制作了一个批处理文件,以明确使用 plugman 创建插件以安装插件。您可以复制下面的代码并将其放入 anyname.bat (并将其放入您的“项目文件夹/”中) 您可以根据需要修改代码。下面的代码,我修复了仅适用于 Android 的命令

@echo off
SET/P pluginName=Please input plugin name: 
call plugman create --name %pluginName% --plugin_id %pluginName% --plugin_version 1.0.0
call cd %pluginName%
call plugman platform add - -platform_name android
call plugman createpackagejson .
call cd ..
call plugman install --platform android --project platforms/android --plugin ./%pluginName% 

参考 https://cordova.apache.org/docs/en/latest/plugin_ref/plugman.html