Ошибка установки 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": {}
}
Другие вопросы по тегам