Error installing cordova-plugin-inappbrowser: "Error: Expected "*/" or [^*] but "*" found"
Error installing cordova-plugin-inappbrowser: "Error: Expected "*/" or [^*] but "*" found"
当运行
cordova plugin add cordova-plugin-inappbrowser
我总是遇到以下错误:
Fetching plugin "cordova-plugin-inappbrowser@~1.2.0" via npm
Installing "cordova-plugin-inappbrowser" for ios
Failed to install 'cordova-plugin-inappbrowser':undefined
Error: Expected "*/" or [^*] but "*" found.
我发现的许多信息都已经过时了。我有:
corvoda-cli@6.0.0
cordova-ios@4.0.1
@GameScripting,如果插件在新项目上安装没有错误(正如您在评论中提到的那样),那么 npm 缓存或 cordova 版本应该不是问题。
当我过去在添加或删除插件时遇到问题,它总是与损坏的平台插件 json 文件有关。它们位于您的应用程序文件夹中名为 plugins 的文件夹中。每个平台都有自己的。我相信您正在进行 iOS 开发,因此请查看该文件夹中的 ios.json 文件。
首先检查 plugins\ios.json 中的 json 以确保其格式正确(例如,您可以与工作项目进行比较,或查看以下文件)。接下来,如果在任何地方都有对 cordova-plugin-inappbrowser 的引用,请删除该条目,然后重试命令:
cordova plugin add cordova-plugin-inappbrowser
{
"prepare_queue": {
"installed": [],
"uninstalled": []
},
"config_munge": {
"files": {}
},
"installed_plugins": {
"cordova-plugin-device": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"cordova-plugin-splashscreen": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"cordova-plugin-whitelist": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"ionic-plugin-keyboard": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"cordova-plugin-inappbrowser": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
}
},
"dependent_plugins": {}
}
您可以通过以下几种不同的方式解决问题:
1。检查是否一切正常生成并清理您的项目。
有时通过记录和查看输出包,您会发现插件安装并不总是可靠的。在某些情况下,一些插件可能无法正确安装(您会在日志中看到 "not defined" 消息,并且可能会看到 undefined
消息)。通常删除和(重新)添加失败的插件可以解决这个问题。另一件可以尝试的事情是在进行构建之前清理项目——iOS 和 Android 分别在 ./platforms/ios/cordova/clean
和 ./platforms/android/cordova/clean
中都有可用的清理脚本,这有时会有所帮助 运行 构建之间。
如果您的 wifi 连接不佳,您有时可以安装这些 bad/incomplete。您可以通过检查文件夹本身以及 plugins/fetch.json
、plugins/ios.json
和 plugins/android.json
文件来对此进行测试。
您的 plugins/fetch.json
应如下所示:
"cordova-plugin-inappbrowser": {
"source": {
"type": "registry",
"id": "cordova-plugin-inappbrowser@~1.3.0" //or whatever version
},
"is_top_level": true,
"variables": {}
},
当你 运行 cordova build
或 cordova prepare
它应该为你项目的每个平台自动生成一个 .json
所以如果你有 android 和 ios 它应该创建一个 android.json
& ios.json
并且应该如下所示:
"installed_plugins": {
"cordova-plugin-inappbrowser": {
"PACKAGE_NAME": "com.example.hello"
},
在这里尝试删除项目构建然后重新构建它
rm -rf platforms/ios/build && cordova build ios
现在测试您的项目,如果运气不佳,请尝试以下一些步骤。
2。删除并(重新)添加项目 platforms
和 plugins
文件夹。
在您的应用程序文件夹的基础上 运行
rm -rf plugins/ && rm -rf platforms/
cordova plugin add cordova-plugin-inappbrowser
cordova platform add ios
cordova run ios
如果没有尝试步骤 3 和 4,现在测试您的项目
3.测试 运行ning cordova plugin add cordova-plugin-inappbrowser
在新项目中是否能正常工作
尝试运行宁:
cordova create hello com.example.hello "HelloWorld"
cd hello
cordova plugin add cordova-plugin-inappbrowser
cordova platform add ios
cordova build
如果它正确安装到新项目中,请进入 plugins/
文件夹,然后将 cordova-plugin-inappbrowser
插件文件夹拖放到您当前项目的 plugins/
文件夹中,然后再次测试您的项目,如果您仍然有问题,请仔细检查确保 fetch.json
或 ios.json
/ android.json
文件正确生成并且它们看起来像 #1 中的内容。
同时假设该插件在您的新应用程序中工作并且新应用程序使用相同的应用程序名称和包名称(当您 运行 cordova create hello com.example.hello "HelloWorld"
时)您也可以简单地替换您当前的 www/
和 运行 它并且你不应该 运行 进入任何问题。
4。与步骤 #3 类似,下载不使用 cli
的插件,然后将其添加到您的项目中
尝试在此处下载插件的 .zip 文件 https://github.com/apache/cordova-plugin-inappbrowser 并将其添加到您的 plugins
文件夹,然后测试您的项目
5.更新您的项目和 cli
尝试使用当前的 4.1.0 for ios 所以在你的项目文件夹中尝试 运行ning
rm -rf plugins/ && rm -rf platforms/ && cordova platform add ios
cordova platforms update cordova-ios@4.1.0
cordova plugin add cordova-plugin-inappbrowser
cordova run ios --device
您还可以通过在 platforms/platforms.json
中指定来更改项目版本(cordova-ios
或 cordova-android
)
e.i.
{
"ios": "4.1.0"
"android": [version number]
}
虽然它是当前版本并且有望免费发行我有 运行 与此有关的插件问题我目前使用的是较低版本,因此如果您仍有问题请重试版本 @4.0.0
或 @3.6.3
您可以使用我在 #6
下提供的其他一些有用命令来执行此操作
6.Make确定你有正确的权限
您也有可能遇到 cordova 权限问题,因此请尝试检查或更改以下位置
运行:
whoami
要查找您的用户名,请在此处使用该名称:
sudo chown -R [add your username here] /usr/local/lib/node_modules/cordova
即
sudo chown -R bobsagit /usr/local/lib/node_modules/cordova
sudo chmod -R 777 /Users/[bobsagit]/.config/
sudo chmod -R 777 ./platforms/ios/
和您的项目文件夹,假设它在桌面上并命名为 ExampleProject
sudo chmod -R 777 ~/Desktop/ExampleProject/platforms/ios
其他有用的命令
在您的应用程序根文件夹中,您可以尝试以下一些操作
查看当前项目中的插件
cordova plugins list
查看当前项目的平台版本运行
cordova platform list
或
cordova platform version
它会给你下面的输出
Installed platforms: android 3.5.1, ios 3.5.0
Available platforms: amazon-fireos, blackberry10, browser, firefoxos
检查 cordova 应用程序的当前平台版本
cordova platform version ios
更新现有版本
cordova platform update ios
要更改项目版本首先使用您想要的版本全局安装然后将其添加到您的项目
sudo npm install -g cordova-ios@4.1.0
cordova platform add ios@4.1.0
或更新到指定的特定版本
cordova platform update ios@4.1.0
在您的机器上查看当前 运行ning cordova 版本 运行
cordova --version
了解更多详情运行
npm info cordova
补充说明:
当您添加 cordova
插件时,它们是针对设备而非浏览器的插件,因此请确保您在通过将 --device 附加到您的 运行 命令来设置设备
cordova run ios --device
旧的 cli 你会添加带有 .
语法的插件,即 org.apache.cordova.inappbrowser
现在你没有,所以确保你使用 -
就像你在做 cordova-plugin-inappbrowser
更新: 我刚刚阅读了您的评论,您说它适用于不同的项目。我对 http://www.macincloud.com/ 不太了解,但看起来你的问题是插件初始安装时出现的问题,因此请尝试清理它或删除它,然后像步骤 1 和 2 中那样将其添加回去
更新 node.js
和 npm
,创建单独的项目安装平台和插件,将您的 www 文件夹粘贴到其中。我也遇到了同样的事情,更新 node.js
和 npm
解决了问题。
当运行
cordova plugin add cordova-plugin-inappbrowser
我总是遇到以下错误:
Fetching plugin "cordova-plugin-inappbrowser@~1.2.0" via npm
Installing "cordova-plugin-inappbrowser" for ios
Failed to install 'cordova-plugin-inappbrowser':undefined
Error: Expected "*/" or [^*] but "*" found.
我发现的许多信息都已经过时了。我有:
corvoda-cli@6.0.0
cordova-ios@4.0.1
@GameScripting,如果插件在新项目上安装没有错误(正如您在评论中提到的那样),那么 npm 缓存或 cordova 版本应该不是问题。
当我过去在添加或删除插件时遇到问题,它总是与损坏的平台插件 json 文件有关。它们位于您的应用程序文件夹中名为 plugins 的文件夹中。每个平台都有自己的。我相信您正在进行 iOS 开发,因此请查看该文件夹中的 ios.json 文件。
首先检查 plugins\ios.json 中的 json 以确保其格式正确(例如,您可以与工作项目进行比较,或查看以下文件)。接下来,如果在任何地方都有对 cordova-plugin-inappbrowser 的引用,请删除该条目,然后重试命令:
cordova plugin add cordova-plugin-inappbrowser
{
"prepare_queue": {
"installed": [],
"uninstalled": []
},
"config_munge": {
"files": {}
},
"installed_plugins": {
"cordova-plugin-device": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"cordova-plugin-splashscreen": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"cordova-plugin-whitelist": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"ionic-plugin-keyboard": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
},
"cordova-plugin-inappbrowser": {
"PACKAGE_NAME": "<YOUR PACKAGE NAME>"
}
},
"dependent_plugins": {}
}
您可以通过以下几种不同的方式解决问题:
1。检查是否一切正常生成并清理您的项目。
有时通过记录和查看输出包,您会发现插件安装并不总是可靠的。在某些情况下,一些插件可能无法正确安装(您会在日志中看到 "not defined" 消息,并且可能会看到 undefined
消息)。通常删除和(重新)添加失败的插件可以解决这个问题。另一件可以尝试的事情是在进行构建之前清理项目——iOS 和 Android 分别在 ./platforms/ios/cordova/clean
和 ./platforms/android/cordova/clean
中都有可用的清理脚本,这有时会有所帮助 运行 构建之间。
如果您的 wifi 连接不佳,您有时可以安装这些 bad/incomplete。您可以通过检查文件夹本身以及 plugins/fetch.json
、plugins/ios.json
和 plugins/android.json
文件来对此进行测试。
您的 plugins/fetch.json
应如下所示:
"cordova-plugin-inappbrowser": {
"source": {
"type": "registry",
"id": "cordova-plugin-inappbrowser@~1.3.0" //or whatever version
},
"is_top_level": true,
"variables": {}
},
当你 运行 cordova build
或 cordova prepare
它应该为你项目的每个平台自动生成一个 .json
所以如果你有 android 和 ios 它应该创建一个 android.json
& ios.json
并且应该如下所示:
"installed_plugins": {
"cordova-plugin-inappbrowser": {
"PACKAGE_NAME": "com.example.hello"
},
在这里尝试删除项目构建然后重新构建它
rm -rf platforms/ios/build && cordova build ios
现在测试您的项目,如果运气不佳,请尝试以下一些步骤。
2。删除并(重新)添加项目 platforms
和 plugins
文件夹。
在您的应用程序文件夹的基础上 运行
rm -rf plugins/ && rm -rf platforms/
cordova plugin add cordova-plugin-inappbrowser
cordova platform add ios
cordova run ios
如果没有尝试步骤 3 和 4,现在测试您的项目
3.测试 运行ning cordova plugin add cordova-plugin-inappbrowser
在新项目中是否能正常工作
尝试运行宁:
cordova create hello com.example.hello "HelloWorld"
cd hello
cordova plugin add cordova-plugin-inappbrowser
cordova platform add ios
cordova build
如果它正确安装到新项目中,请进入 plugins/
文件夹,然后将 cordova-plugin-inappbrowser
插件文件夹拖放到您当前项目的 plugins/
文件夹中,然后再次测试您的项目,如果您仍然有问题,请仔细检查确保 fetch.json
或 ios.json
/ android.json
文件正确生成并且它们看起来像 #1 中的内容。
同时假设该插件在您的新应用程序中工作并且新应用程序使用相同的应用程序名称和包名称(当您 运行 cordova create hello com.example.hello "HelloWorld"
时)您也可以简单地替换您当前的 www/
和 运行 它并且你不应该 运行 进入任何问题。
4。与步骤 #3 类似,下载不使用 cli
的插件,然后将其添加到您的项目中
尝试在此处下载插件的 .zip 文件 https://github.com/apache/cordova-plugin-inappbrowser 并将其添加到您的 plugins
文件夹,然后测试您的项目
5.更新您的项目和 cli
尝试使用当前的 4.1.0 for ios 所以在你的项目文件夹中尝试 运行ning
rm -rf plugins/ && rm -rf platforms/ && cordova platform add ios
cordova platforms update cordova-ios@4.1.0
cordova plugin add cordova-plugin-inappbrowser
cordova run ios --device
您还可以通过在 platforms/platforms.json
cordova-ios
或 cordova-android
)
e.i.
{
"ios": "4.1.0"
"android": [version number]
}
虽然它是当前版本并且有望免费发行我有 运行 与此有关的插件问题我目前使用的是较低版本,因此如果您仍有问题请重试版本 @4.0.0
或 @3.6.3
您可以使用我在 #6
6.Make确定你有正确的权限
您也有可能遇到 cordova 权限问题,因此请尝试检查或更改以下位置
运行:
whoami
要查找您的用户名,请在此处使用该名称:
sudo chown -R [add your username here] /usr/local/lib/node_modules/cordova
即
sudo chown -R bobsagit /usr/local/lib/node_modules/cordova
sudo chmod -R 777 /Users/[bobsagit]/.config/
sudo chmod -R 777 ./platforms/ios/
和您的项目文件夹,假设它在桌面上并命名为 ExampleProject
sudo chmod -R 777 ~/Desktop/ExampleProject/platforms/ios
其他有用的命令
在您的应用程序根文件夹中,您可以尝试以下一些操作
查看当前项目中的插件
cordova plugins list
查看当前项目的平台版本运行
cordova platform list
或
cordova platform version
它会给你下面的输出
Installed platforms: android 3.5.1, ios 3.5.0
Available platforms: amazon-fireos, blackberry10, browser, firefoxos
检查 cordova 应用程序的当前平台版本
cordova platform version ios
更新现有版本
cordova platform update ios
要更改项目版本首先使用您想要的版本全局安装然后将其添加到您的项目
sudo npm install -g cordova-ios@4.1.0
cordova platform add ios@4.1.0
或更新到指定的特定版本
cordova platform update ios@4.1.0
在您的机器上查看当前 运行ning cordova 版本 运行
cordova --version
了解更多详情运行
npm info cordova
补充说明:
当您添加 cordova
插件时,它们是针对设备而非浏览器的插件,因此请确保您在通过将 --device 附加到您的 运行 命令来设置设备
cordova run ios --device
旧的 cli 你会添加带有 .
语法的插件,即 org.apache.cordova.inappbrowser
现在你没有,所以确保你使用 -
就像你在做 cordova-plugin-inappbrowser
更新: 我刚刚阅读了您的评论,您说它适用于不同的项目。我对 http://www.macincloud.com/ 不太了解,但看起来你的问题是插件初始安装时出现的问题,因此请尝试清理它或删除它,然后像步骤 1 和 2 中那样将其添加回去
更新 node.js
和 npm
,创建单独的项目安装平台和插件,将您的 www 文件夹粘贴到其中。我也遇到了同样的事情,更新 node.js
和 npm
解决了问题。