Ошибка установки cordova-plugin-inappbrowser: "Ошибка: ожидается"*/"или [^*], но"*"найден"
При беге
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
3 ответа
Вот несколько способов исправить проблему:
1. Проверьте, все ли генерируется так, как должно, и очистите ваш проект.
Иногда, регистрируя вещи и просматривая пакет вывода, вы можете обнаружить, что установка плагина не всегда надежна. В некоторых случаях пара плагинов может не установить должным образом (где вы видите "не определенные" сообщения и, возможно, ваш undefined
сообщение в ваших логах). Обычно удаление и (повторное) добавление неисправного плагина может решить эту проблему. Еще одна попытка - очистить проект перед сборкой - и в iOS, и в Android есть скрипт очистки, доступный либо в ./platforms/ios/cordova/clean
а также ./platforms/android/cordova/clean
соответственно, которые могут помочь иногда при запуске между сборками.
Вы можете получить эти плохие / неполные установки иногда, если у вас плохое соединение Wi-Fi. Вы можете проверить это, проверив сами папки и 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. Проверьте, работает ли 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. Обновите свой проект и кли
Попробуй быть на текущей 4.1.0 для ios, поэтому в папке проекта попробуй запустить
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
Вы также можете изменить версию своего проекта (cordova-ios
или же cordova-android
) версии, указав в своем platforms/platforms.json
й
{
"ios": "4.1.0"
"android": [version number]
}
Хотя это текущая версия и, надеюсь, будет выпущена бесплатно, у меня возникла проблема с плагином, где я сейчас использую более низкую версию, поэтому, если у вас все еще есть проблемы, попробуйте еще раз с версией @4.0.0
или же @3.6.3
Вы можете сделать это с некоторыми другими полезными командами, которые я предоставил под # 6
6. Убедитесь, что у вас есть необходимые разрешения
Существует также вероятность того, что у вас может быть проблема с разрешениями на кордову, поэтому попробуйте проверить или изменить следующие местоположения
бежать:
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
чтобы увидеть текущую версию Cordova на вашем компьютере запустить
cordova --version
для более подробной информации
npm info cordova
Дополнительные примечания:
Когда вы добавляете cordova
Плагины - это плагины, предназначенные для устройства, а не для браузера, поэтому убедитесь, что вы тестируете на устройстве, добавив --device в команду run следующим образом. cordova run ios --device
Старый кли вы бы добавить плагин с .
синтаксис т.е. org.apache.cordova.inappbrowser
теперь нет, поэтому убедитесь, что вы используете -
как ты где делаешь cordova-plugin-inappbrowser
ОБНОВЛЕНИЕ: Я только что прочитал ваш комментарий, где вы сказали, что он работает в другом проекте. Я не очень разбираюсь в http://www.macincloud.com/ но похоже, что ваша проблема связана с первоначальной установкой плагина, поэтому попробуйте очистить или удалить его и добавить обратно, как в шагах 1 и 2.
Обновите node.js
а также npm
Создайте отдельную платформу для установки проекта, и плагины вставят в нее вашу папку www. То же самое случилось со мной, я сделал то же самое, после обновления node.js
а такжеnpm
решает проблему.
@GameScripting, если плагин устанавливается без ошибок на новый проект (как вы упомянули в комментарии), то это не должно быть проблемой с кешем npm или версией cordova.
Когда в прошлом я сталкивался с проблемами при добавлении или удалении плагинов, это всегда было связано с поврежденным файлом json плагина платформы. Они находятся в папке с названием plugins в папке вашего приложения. У каждой платформы есть своя. Я полагаю, что вы занимаетесь разработкой для iOS, так что посмотрите на файл ios.json в этой папке.
Сначала проверьте json в plugins\ios.json, чтобы убедиться, что он правильно сформирован (например, вы можете сравнить его с рабочим проектом или посмотреть файл ниже). Затем, если где-нибудь есть ссылка на cordova-plugin-inappbrowser, удалите запись и повторите команду:
Cordova плагин добавить Cordova-плагин-в AppBrowser
{
"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": {}
}